[ Content | Sidebar ]

Archives for 一月, 2010

google工具栏牛x的分享按钮

偶火星了,更新了google的工具栏到7.0.20091216Lb1,发现多了一个牛x的分享功能。许多网站(包括renren)都提供了一个可以分享站外内容的书签,但是已经安装了google的工具栏,再开一个书签栏就太占地方了。这个按钮终于解决了这个问题,而且可以分享到n个站点。

google toolbar的牛逼分享按钮

google toolbar的分享按钮
列表里的人人网是我后来添进去的,默认列表里是没有的,一水的e文网站。工具栏还没有提供一个直接添加的方法,但是可以直接修改列表文件。列表文件位于:

~/.mozilla/firefox/这个目录名因人而异/GoogleToolbarData/components/share_providers.json

—————————-
补充:或直接找

cd ~/.mozilla
find ./ -name "share_providers.json"
#你会找到两个,覆盖我给的那个路径就可以
Copy Code 

—————————-
可以直接下载偶修改好的文件:share_providers.json

曾经的分享按钮一直被冷落在菜单里:

vim创建js文件时自动添加文件注释

参考: VIM自动给脚本加注释

在vimrc里添加下面几行

"添加文件注释
command -nargs=0 Addreadme :call Addreadme()
function Addreadme()
call setline(1,"/**")
call append(1," * @require : none")
call append(2," * @author : someone@bluehua.org")
call append(3," * @date : " . strftime("%Y-%m-%d"))
call append(4," * @description : this is a new file ")
call append(5," */")
endf
:au BufNewFile *.js :Addreadme
Copy Code 

ubuntu 安装 thunderbird 3.0

参考: How To Install Thunderbird 3 Shredder in Ubuntu 9.10.

启动之后自动导入了2.0里面的邮件,之后弹了一个窗 “Error getting mail password” 取不到密码,收不了邮件,查看版本:version 3.02 pre。

打开console,错误提示:

error getting mail password : thunderbird 3.0

这个时候体现出哥做js的优势了。。

sudo vim /usr/lib/thunderbird-3.0.2pre/components/nsLoginManagerPrompter.js

change

username = decodeURIComponent(username);

to

try{
    username = decodeURIComponent(username);
}catch(e){
    username = 'ooxx';
}

重启,OK,可以收邮件了。。。为啥usename会无法解码,就没时间给他细察了,但是说明一个问题:try catch是王道。。。

nginx反向代理kloxo

偶的vps配置真是几经波折。。

最开始 : centos + nginx + fastcgi + php,一个人用,任何修改都是直接ssh到server,一水的root

后来,搬家了,两个人用,加一个菜鸟的明星同学,考虑到傻瓜性,保留了默认安装的控制面板:centos + kloxo。kloxo可以选lighttpd, apache。由于一开始不知道能切apache,就用了lighttpd + fastcgi + php,结果发现每个人开三个fastcgi,128内存基本上就快光了,还有一点不爽的就是wp-super-cache的重写,如果用apache根本不用操心。。

备注:恩,由于kloxo的安全性考虑,每个用户的fastcgi都是单开的,不能共用

现如今,同样的vps配置,5个人共用,不得不再换个思路。首先fastcgi肯定不靠普了,每个人开2个,基本上就靠swap活着了,所以一定要用apache,apache里php以模块运行,多用户可以共用,所以apache进程只需开到2-3个,使用8080端口,然后前端再放nginx做代理,顺便处理静态文件。

恩,思路很简单,但是问题是,kloxo生成的虚拟主机配置文件全是80端口,想hack一下,发现源代码全被zend加密了。后来官网svn找到源码,端口竟然都是80写死在代码里的,修改之后覆盖到server上,发现不能添加域名了,说明版本太新,最后没办法,只能恶心一下了~

每10秒钟检查一下配置文件,如果发现kloxo生成了80端口的配置文件,立刻替换成8080端口。脚本启动添加到/etc/rc.local里,开机运行。

#!/bin/sh
while [ "a"="a" ];do
        find /home/httpd/ -type f -name "kloxo.*" | xargs grep ":80\\\\" > /tmp/kloxo_port 
        if [ -n "`cat /tmp/kloxo_port`" ];then
                sh /root/kloxo_changeport.sh "80" "8080"
                sleep 2
                echo "restart httpd"
                echo "restart httpd `date`" >> /var/log/httpd_restart.log
                /etc/init.d/httpd restart
        fi
        sleep 10
done
Copy Code 

用到的两个shell脚本下载 : fuck-kloxo

OK,解决完端口问题下面就是配置ngnix代理

#仅开了一个进程。。
worker_processes  1;

配置代理

server {
        limit_conn   myzone  10;
        listen       80;
        server_name  _;
#静态文件不走代理,直接nginx处理
        location ~* .*\.(jpg|jpeg|png|gif|css|js|swf|mp3|avi|flv|xml|zip|rar)$ {
                add_header BlueNoProxy 1;
                expires 30d;
                root /home/httpd/$host/httpdocs;
        } 
#html文件由可能是固态链接,所以404之后依然走代理
        location ~* .*\.(html|htm)$ {
                add_header BlueNoProxy 1;
                root /home/httpd/$host/httpdocs;
                error_page 404 = @proxy;
        }
#这里ip不能用127.0.0.1,kloxo的配置文件里会根据外网ip划分虚拟主机
        location @proxy {
                proxy_pass        http://209.124.50.68:8080;
                proxy_set_header Host $host;
                proxy_set_header  x-real-IP  $remote_addr;
 
        }
 
        location / {
                proxy_pass        http://209.124.50.68:8080;
                proxy_set_header Host $host;
                proxy_set_header  x-real-IP  $remote_addr;
        }
 
   }
Copy Code 

以上,偶的最新vps配置就over了~

更聪明的pidgin

pidgin里有个类似情景模式的功能,除了可用、离线等几个状态之外还可以自定义状态,对不同的im使用不同的状态。我义了两个”at home”和”work”,分别再家里和公司使用。

于是想搞个能够根据网络自动切换两个状态的小脚本,到家能自动切到“at home”,上班时自动切到“work”,终于在上周末搞定了,用了两天,很好用。。

下面是用到的相关脚本:

第一个文件 : status_filectl.pl : status_filectl.0.1

这是个用perl实现的pidgin插件,功能很简单,通过生成~/.purple/cstatus 文件来改变pidgin的状态,需要放到~/.purple/plugins目录,并到插件里启用。

装完插件就可以下面这样修改状态了

echo "at home" > ~/.purple/cstatus

这么简单的功能本来想用dbus实现,但是pidgin的dbus接口不够,不能根据title查找已存状态。。。

第二个文件 : smart_pidgin.sh smart_pidgin.zip

这个文件用来根据网络判断使用不同的状态,需要自定义,放到/etc/NetworkManager/dispatcher.d目录即可

恩,以上,就可以更懒一点了~~