技术 / 设计
Vimperator:Firefox模仿Vim插件
作为一个铁杆的VIM迷,我很希望FireFox能够使用VIM一样的键盘绑定。在发现这个插件之前,我使用一个叫做keyconfig的插件,但是安装了这个插件以后,我立即就把keyconfig卸载了。因为这个插件是在太强了。
安装后将把你的FireFox的菜单栏和工具栏都隐藏起来,可以使你的FireFox有最大的可视面积。并且,所有的操作都可以使用键盘来完成。比如按“o”,再输入网址,就可以打开这个网址对应的页面;使用h、j、k、l 来移动等等。具体的快捷键可以输入“:h”来获得帮助(是不是很有VIM的感觉)。
这个插件可以在这里下载。
wordpress统计插件StatTraq使用及乱码问题解决
StatTraq是wordpress的一个统计插件,功能强大,常用的统计功能都具备了。
一、安装
- 下载后,将stattraq.php文件上传到你的wp-contents/plugins/目录下。
- 将wp-stattraq目录上传到你的wordpress根目录下。
- 浏览器中运行“你的wordpress安装目录/wp-stattraq/stattraq-install.php”文件,点击“Create the StatTraq Table”。
- 去后台激活StatTraq插件。
二、源代码分析
- StatTraq统计数据入库的代码是在StatTraq文件内。其中统计信息的代码是:
$ipAddress = statTraqGetIPAddress(); //获取IP地址
$urlRequested = $_SERVER['PHP_SELF'] . (isset($_SERVER['QUERY_STRING']) ? "?".$_SERVER['QUERY_STRING'] : " );
$browser = statTraqGetBrowser(); // 浏览器类型
$referrer = (isset($_SERVER['HTTP_REFERER']) ? "'" . $_SERVER['HTTP_REFERER'] . "'" :"NULL"); // 来源
$userAgent = (isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : "NULL");
$search_phrase = statTraqGetSearchPhrase($referrer); // 搜索关键词
- wp-stattraq/reporter下的文件,就是你在后台查看时,输出统计信息的脚本。后台的哪个菜单,对应哪个文件,可以通过链接的URL来查看。比如Search Terms对应的URL是“index.php?view=query_strings...”,说明调用query_strings.php文件。要想修改相应的输出,只需要修改相应的文件即可。
三、添加baidu搜索数据
- 在StatTraq.php的statTraqGetBrowser函数中添加识别baidu蜘蛛的代码:
}else if(strpos($ua, "Baiduspider") !== false){
$browser_type = ST_BOT;
$s_id = "Baiduspider";
return "Baiduspider";
}else if(strpos($ua, "sohu-search") !== false){
$browser_type = ST_BOT;
$s_id = "SogouBot";
return "SogouBot";
}
- 在StatTraq.php的statTraqGetSearchPhrase函数中添加识别baidu关键词的代码:
}else if(strpos($referrer, "baidu.")!== false){
$key = "wd";
}else if(strpos($referrer, "sogou.")!== false){
$key = "query";
四、解决乱码问题
-
1.打开/wp-stattraq/reporter/summary.php,找到第140行
post_title));?> ,修改为
post_title),ENT_NOQUOTES,’utf-8′);?>2.打开/wp-stattraq/reporter/query_strings.php,找到第88行
htmlentities($row->search_phrase) ,修改为
htmlentities($row->search_phrase,ENT_NOQUOTES,’utf-8′)- 解决StatTraq的乱码问题
- 在StatTraq.php的 “$search_phrase = statTraqGetSearchPhrase($referrer);” 语句后,添加
if(strpos($referrer, "baidu.")!== false)
{
$search_phrase = iconv("gb2312","UTF-8",$search_phrase);
}
参考文章:
Wordpress 2.1使用UTW后搜索功能失效的解决
在Wordpress中2.1中激活UTW插件后,WP的搜索功能就失效了。这也是我一直没有使用UTW插件的原因,因为对一个Blog来说,搜索应该是很重要的功能。(我这里的搜索已经换成了Google的custom search,不受UTW影响。)
解决这个问题的方法是:
在ultimate-tag-warrior-actions.php中,找到
add_filter(’posts_join’, array(’UltimateTagWarriorActions’,'ultimate_search_join’));
add_filter(’posts_where’, array(’UltimateTagWarriorActions’,'ultimate_search_where’));
在这两行的前面加上"//",也就是将其注释掉。
搜索功能就恢复了。不过这样会导致一个问题,那就是tag搜索的功能就会失效了。相比而言,这个损失应该是可以接受的吧。
参考文章:
ubuntu配置(2)——常用软件
- 安装RAR 压缩/解压缩程序
sudo apt-get install rar unrar
- 安装媒体播放器
老牌的mplayer是播放各种视频文件的首选系统自带的totem播放不能播放rmvb等文件,将它的核心换成xine的,以便可以播放rmvb文件:
sudo apt-get install mplayer mplayer-fonts mplayer-skins w32codecs
sudo apt-get install totem-xine
- mp3播放器
sudo apt-get install audacious gstreamer0.10-fluendo-mp3
- p2p网络电视
(1)从sopcast官网上下载sopcast命令行程序并把sp-sc文件解压到/usr/local/bin/下
(2)从这里下载并安装gsopcast - bt下载软件
无论是Azureus,还是deluge,速度都不是很理想。后来改用bitstormlite,速度一流,缺点是好像没有续传功能,并且管理不方便。
sudo apt-get install bitstormlite
- 安装ftp客户端
sudo apt-get install gftp
- 游戏模拟器
在loemu中设定rom的存放目录,然后rebuild gamelist就可以双击开始游戏了。
sudo apt-get install xmame loemu
- pdf阅读器
sudo apt-get install evince
- chm阅读器
sudo apt-get install gnochm
配置ubuntu
- 修改源并更新升级Ubuntu:
“源”就是你更新软件时的服务器,配置好以后就可以直接从源下载并安装软件了,非常方便。我使用cn99的源,速度比较快。
将以下内容复制到/etc/apt/sources.list文件内:
deb http://ubuntu.cn99.com/ubuntu/ edgy main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ edgy-security main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ edgy-updates main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ edgy-proposed main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ edgy-backports main restricted universe multiverse
deb-src http://ubuntu.cn99.com/ubuntu/ edgy main restricted universe multiverse
deb-src http://ubuntu.cn99.com/ubuntu/ edgy-security main restricted universe multiverse
deb-src http://ubuntu.cn99.com/ubuntu/ edgy-updates main restricted universe multiverse
deb-src http://ubuntu.cn99.com/ubuntu/ edgy-proposed main restricted universe multiverse
deb-src http://ubuntu.cn99.com/ubuntu/ edgy-backports main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu-cn/ edgy main restricted universe multiverse
然后运行:
sudo apt-get update
sudo apt-get dist-upgrade
这两个命令是更新系统。我的ubuntu是6.10版,更新时需要下载不少东西,慢慢等吧。 - 设置中文支持环境:
点击 最上面菜单 的 系统 -> 系统管理 -> 语言支持 [如果是英文菜单则是 System -> Administration -> Language Support] 在列表中的 Chinese 条目 打勾。 同时将默认语言修改为 Chinese(中国) ,按确定关闭设置程序。 - 美化字体:
默认的字体不是很好看,可以使用windows的字体来进行美化,具体的方法看这里:
Ubuntu字体美化 - 配置网络:
我将ubuntu配置成共享上网的主机,其他windows电脑通过linux共享上网。
首先,配置ubuntu的pppoe,运行:sudo pppoeconf,按照提示一步步设置即可。在最后一步的时候选中开机自动拨号。
但是此时重启的话,你会发现ubuntu还是不能自动拨号到internet,必须使用pon dsl-provider命令来拨号。
如果要开机自动拨号,还需要运行:sudo ln -s /etc/ppp/pppoe_on_boot /etc/ppp/ppp_on_boot
其次,要设置ubuntu的共享上网,在/etc/rc.local中,加入
echo "1" >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE重启即可。
- 安装Beryl:
这个东西实在是太酷了。如果你不知道什么是Beryl,那么先去Youtube或者google搜索一下,有不少这个东西的视频,超级酷的。
(1) 首先,需要安装你nVidia的驱动。我一开始通过“快立得软件包管理器”,安装了下面几个包:
linux-generic
linux-restricted-modules-2.6.17-11-generic
nvidia-kernel-common
然后安装nVidia-glx的时候,老是报错,通不过依赖性检查。
后来使用这两个命令,没想到一切顺利:
sudo aptitude install nvidia-glx
sudo nvidia-xconfig
(2) 安装beryl
sudo apt-get install beryl emerald emerald-themes修改xorg.conf
sudo gedit /etc/X11/xorg.conf
在 Section "Screen" 里面添加
Option "AddARGBGLXVisuals" "True"保存退出
在系统-》首选项-》会话-》起动程序 里面添加一项”beryl-manager“
注销
alt+ctrl+backspace,重启X,就可以看到Beryl的效果了。
参考文章:
安装ubuntu
在我的台式机上安装了ubuntu,安装过程超级简单,基本就是一路next。想起以前装redhat 6.4的时候,那个麻烦啊。后来一直到redhat 9.2,安装过程也还是大同小异。ubuntu在这个方面进步不小啊。最棒的是连分区都不需要自己分,安装程序会自动找到你硬盘的最后一个分区,自动划出空间来给linux使用,避免使用fdisk或者pqmagic这样的软件,对新手来说,这应该是个非常好的特性。以前给人介绍linux安装的时候,说到要重新分区,连我自己都觉得这个对新用户来说实在是太难了。
安装的过程跟windows很类似了。基本就是只要坐着等结束就可以。完毕后,会要求你取出光盘,然后按enter重启,就可以进入ubuntu的世界了。而且驱动已经全部安装完毕。想当年装个声卡驱动可是得费九牛二虎之力的...
准备把台式机上的环境全面切换到ubuntu。反正我很多软件用的是open source的,有linux版本。没多少转换的成本。
新玩具——ubuntu
我申请的ubuntu不远万里的从大洋彼岸寄过来了。感觉从申请到收到也没花多少时间。
8张pc版,1张64位版,1张mac版,全免费。
老外有些事情就是办的漂亮。
反观国内开源现状,抄袭就不去说它了,把人家BSD协议的拿来改改就声称“完全自主产权”,也不脸红。
准备这几天弄点硬盘空间出来,好好玩玩ubuntu。
[backup] 在用的好软件
- 媒体播放:Media Player Classic
- 收音:CRadio
- 硬盘搜索:AvaFindPro
- Shell:bbLean
- 屏幕取色:ColorSpy
- 文件拷贝:FastCopy
- FTP:FlashFXP、FileZilla
- 快捷键:Hoekey
- 脑图制作:MindManager、Inspiration、Personal Brain
- 密码管理:KeePass、Password Agent
- 远程控制:Remote Administrtor
- 搜索替换:Search & Replace
- 下载:Thunder
- To do list:todolist、Rainlendar
- 桌面日历:Rainlendar
- 文本编辑:gVim
- 个人信息:WinPIM
- 笔记摘录:EverNote
- 文件管理:xplorer
- 记账:财智家庭理财
- 压缩:7-Zip
- 音频播放:BeoPlayer
- 文件比较:Beyond Compare
- 看漫画:ComicsViewer
- 繁简转换:ConvertZ
- 虚拟光驱:Daemon
- PDF阅读:FoxitReader
- 抓图:Fast Stone Capture
- 键盘自定义:KeyTweak
- 项目管理:JCV Gantt
- MySQL前台:NaviCat
- 网络配置更改:Net Profiles
- PDF生成:PDFCreator
- 进程管理:Process Explorer
- SSH:SecureCRT
- 刻录:SilentNight Micro
- 验证码输入:SnInput
- 桌面即时贴:StickyPad
- 系统优化:Tune Up
- BT下载:utorrent
- 网络端口查看:VStat
- 屏幕录制:wink
- 代理:Vidalia
- 浏览器:FireFox
- Email:ThunderBird
- 图片查看:IrfanView
- 输入法:搜狗
- UML:StarUML
- SourceControl:TortoiseSVN
- 文件解锁:Unlocker
- IDE:Visual studio、ZDE、Aptana
- Server:AMP
- 网络电视:PPLive、PPStream、TVKoo、TUV Player
[php] magic_quotes
(一)magic_quotes_gpc
php提供了一个magic_quotes_gpc的选项,可以让用户输入的内容(比如$_POST或者$_GET以及cookie)中的’、”、\、和NULL的前面自动加上转义字符(“\”)。这个选项的本意很好,可以避免我们忘记转义而导致安全问题。但是在实际使用时往往带来不小的麻烦。
如果这个是一直开着的,那么一点问题都没有。但是这是一个选项,服务器可以选择on或者off。当设置成on的时候,在我们写的php代码中就不需要也不应该再使用addslashes等转义函数了。如果是off,当然就必须自己进行转义(如果不转义,就有SQL 注入的危险)。
所以解决的方法是先使用get_magic_quotes_gpc()判断该选项是否打开。
如果已经打开了,将自动加上的slashes去掉。
然后使用mysql的转义函数进行转义。如果你的数据库不支持,也可以使用addslashes函数进行转义。
function array_map_recursive($callback, $array)
{
$r = array();
if (is_array($array))
foreach($array as $key => $value)
$r[$key] = is_scalar($value) ?
$callback($value) :
array_map_recursive($callback, $value);
return $r;
}
function array_stripslashes($array)
{
return array_map_recursive('stripslashes', $array);
}
if (get_magic_quotes_gpc())
{
$_GET = array_stripslashes($_GET);
$_POST = array_stripslashes($_POST);
$_COOKIE = array_stripslashes($_COOKIE);
}
function myescape($string) {
return mysql_real_escape_string( $string );
}
function add_magic_quotes($array) {
foreach ($array as $k => $v) {
if ( is_array($v) ) {
$array[$k] = add_magic_quotes($v);
} else {
$array[$k] = myescape($v);
}
}
return $array;
}
(二)magic_quotes_runtime
magic_quotes_runtime =on时,php在提取数据(包括从文件,数据库)时就会自动在' " \前加上转义符"\"。
xp网上邻居无法访问的解决
- 关闭xp自带的防火墙(注意:关闭后可能会有网络安全问题)。
- 在 控制面板 =》管理工具 =》计算机管理 =》用户 中,双击 Guest,去掉“帐号已过期”前面的勾。



