技术 / 设计

Vimperator:Firefox模仿Vim插件

Posted by 妖刀 14 April, 2007 (0) Comment

作为一个铁杆的VIM迷,我很希望FireFox能够使用VIM一样的键盘绑定。在发现这个插件之前,我使用一个叫做keyconfig的插件,但是安装了这个插件以后,我立即就把keyconfig卸载了。因为这个插件是在太强了。

安装后将把你的FireFox的菜单栏和工具栏都隐藏起来,可以使你的FireFox有最大的可视面积。并且,所有的操作都可以使用键盘来完成。比如按“o”,再输入网址,就可以打开这个网址对应的页面;使用h、j、k、l 来移动等等。具体的快捷键可以输入“:h”来获得帮助(是不是很有VIM的感觉)。

这个插件可以在这里下载。

Categories : 技术 / 设计, 软件 / 工具 Tags :

wordpress统计插件StatTraq使用及乱码问题解决

Posted by 妖刀 10 April, 2007 (0) Comment

StatTraq是wordpress的一个统计插件,功能强大,常用的统计功能都具备了。

一、安装

  1. 下载后,将stattraq.php文件上传到你的wp-contents/plugins/目录下。
  2. 将wp-stattraq目录上传到你的wordpress根目录下。
  3. 浏览器中运行“你的wordpress安装目录/wp-stattraq/stattraq-install.php”文件,点击“Create the StatTraq Table”。
  4. 去后台激活StatTraq插件。

二、源代码分析

  1. 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); // 搜索关键词
  2. wp-stattraq/reporter下的文件,就是你在后台查看时,输出统计信息的脚本。后台的哪个菜单,对应哪个文件,可以通过链接的URL来查看。比如Search Terms对应的URL是“index.php?view=query_strings...”,说明调用query_strings.php文件。要想修改相应的输出,只需要修改相应的文件即可。

三、添加baidu搜索数据

  1. 在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";
    }
  2. 在StatTraq.php的statTraqGetSearchPhrase函数中添加识别baidu关键词的代码:
    }else if(strpos($referrer, "baidu.")!== false){
    $key = "wd";
    }else if(strpos($referrer, "sogou.")!== false){
    $key = "query";

四、解决乱码问题

  1. 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的乱码问题

  2. 在StatTraq.php的 “$search_phrase = statTraqGetSearchPhrase($referrer);” 语句后,添加
    if(strpos($referrer, "baidu.")!== false)
    {
    $search_phrase = iconv("gb2312","UTF-8",$search_phrase);
    }

参考文章:

Categories : 技术 / 设计 Tags :

Wordpress 2.1使用UTW后搜索功能失效的解决

Posted by 妖刀 5 April, 2007 (1) Comment

在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搜索的功能就会失效了。相比而言,这个损失应该是可以接受的吧。

参考文章:

Categories : 技术 / 设计 Tags :

ubuntu配置(2)——常用软件

Posted by 妖刀 31 March, 2007 (1) Comment
  1. 安装RAR 压缩/解压缩程序
    sudo apt-get install rar unrar
  2. 安装媒体播放器
    老牌的mplayer是播放各种视频文件的首选
    sudo apt-get install mplayer mplayer-fonts mplayer-skins w32codecs
    系统自带的totem播放不能播放rmvb等文件,将它的核心换成xine的,以便可以播放rmvb文件:
    sudo apt-get install totem-xine
  3. mp3播放器
    sudo apt-get install audacious gstreamer0.10-fluendo-mp3
  4. p2p网络电视
    (1)从sopcast官网上下载sopcast命令行程序并把sp-sc文件解压到/usr/local/bin/下
    (2)从这里下载并安装gsopcast
  5. bt下载软件
    无论是Azureus,还是deluge,速度都不是很理想。后来改用bitstormlite,速度一流,缺点是好像没有续传功能,并且管理不方便。
    sudo apt-get install bitstormlite
  6. 安装ftp客户端
    sudo apt-get install gftp
  7. 游戏模拟器
    sudo apt-get install xmame loemu
    在loemu中设定rom的存放目录,然后rebuild gamelist就可以双击开始游戏了。
  8. pdf阅读器
    sudo apt-get install evince
  9. chm阅读器
    sudo apt-get install gnochm
Categories : 技术 / 设计, 软件 / 工具 Tags :

配置ubuntu

Posted by 妖刀 25 March, 2007 (0) Comment
  1. 修改源并更新升级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版,更新时需要下载不少东西,慢慢等吧。
  2. 设置中文支持环境:
    点击 最上面菜单 的 系统 -> 系统管理 -> 语言支持 [如果是英文菜单则是 System -> Administration -> Language Support] 在列表中的 Chinese 条目 打勾。 同时将默认语言修改为 Chinese(中国) ,按确定关闭设置程序。
  3. 美化字体:
    默认的字体不是很好看,可以使用windows的字体来进行美化,具体的方法看这里:
    Ubuntu字体美化
  4. 配置网络:
    我将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

    重启即可。

  5. 安装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的效果了。

参考文章:

Categories : 技术 / 设计 Tags :

安装ubuntu

Posted by 妖刀 24 March, 2007 (0) Comment

在我的台式机上安装了ubuntu,安装过程超级简单,基本就是一路next。想起以前装redhat 6.4的时候,那个麻烦啊。后来一直到redhat 9.2,安装过程也还是大同小异。ubuntu在这个方面进步不小啊。最棒的是连分区都不需要自己分,安装程序会自动找到你硬盘的最后一个分区,自动划出空间来给linux使用,避免使用fdisk或者pqmagic这样的软件,对新手来说,这应该是个非常好的特性。以前给人介绍linux安装的时候,说到要重新分区,连我自己都觉得这个对新用户来说实在是太难了。

安装的过程跟windows很类似了。基本就是只要坐着等结束就可以。完毕后,会要求你取出光盘,然后按enter重启,就可以进入ubuntu的世界了。而且驱动已经全部安装完毕。想当年装个声卡驱动可是得费九牛二虎之力的...

准备把台式机上的环境全面切换到ubuntu。反正我很多软件用的是open source的,有linux版本。没多少转换的成本。

Categories : 技术 / 设计 Tags :

新玩具——ubuntu

Posted by 妖刀 21 March, 2007 (0) Comment

我申请的ubuntu不远万里的从大洋彼岸寄过来了。感觉从申请到收到也没花多少时间。
8张pc版,1张64位版,1张mac版,全免费。
老外有些事情就是办的漂亮。
反观国内开源现状,抄袭就不去说它了,把人家BSD协议的拿来改改就声称“完全自主产权”,也不脸红。
准备这几天弄点硬盘空间出来,好好玩玩ubuntu。

Categories : 技术 / 设计, 片语 / 情绪 Tags :

[backup] 在用的好软件

Posted by 妖刀 17 March, 2007 (0) Comment
  1. 媒体播放:Media Player Classic
  2. 收音:CRadio
  3. 硬盘搜索:AvaFindPro
  4. Shell:bbLean
  5. 屏幕取色:ColorSpy
  6. 文件拷贝:FastCopy
  7. FTP:FlashFXP、FileZilla
  8. 快捷键:Hoekey
  9. 脑图制作:MindManager、Inspiration、Personal Brain
  10. 密码管理:KeePass、Password Agent
  11. 远程控制:Remote Administrtor
  12. 搜索替换:Search & Replace
  13. 下载:Thunder
  14. To do list:todolist、Rainlendar
  15. 桌面日历:Rainlendar
  16. 文本编辑:gVim
  17. 个人信息:WinPIM
  18. 笔记摘录:EverNote
  19. 文件管理:xplorer
  20. 记账:财智家庭理财
  21. 压缩:7-Zip
  22. 音频播放:BeoPlayer
  23. 文件比较:Beyond Compare
  24. 看漫画:ComicsViewer
  25. 繁简转换:ConvertZ
  26. 虚拟光驱:Daemon
  27. PDF阅读:FoxitReader
  28. 抓图:Fast Stone Capture
  29. 键盘自定义:KeyTweak
  30. 项目管理:JCV Gantt
  31. MySQL前台:NaviCat
  32. 网络配置更改:Net Profiles
  33. PDF生成:PDFCreator
  34. 进程管理:Process Explorer
  35. SSH:SecureCRT
  36. 刻录:SilentNight Micro
  37. 验证码输入:SnInput
  38. 桌面即时贴:StickyPad
  39. 系统优化:Tune Up
  40. BT下载:utorrent
  41. 网络端口查看:VStat
  42. 屏幕录制:wink
  43. 代理:Vidalia
  44. 浏览器:FireFox
  45. Email:ThunderBird
  46. 图片查看:IrfanView
  47. 输入法:搜狗
  48. UML:StarUML
  49. SourceControl:TortoiseSVN
  50. 文件解锁:Unlocker
  51. IDE:Visual studio、ZDE、Aptana
  52. Server:AMP
  53. 网络电视:PPLive、PPStream、TVKoo、TUV Player

Categories : 技术 / 设计, 软件 / 工具 Tags :

[php] magic_quotes

Posted by 妖刀 17 March, 2007 (0) Comment

(一)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在提取数据(包括从文件,数据库)时就会自动在' " \前加上转义符"\"。

Categories : 技术 / 设计 Tags :

xp网上邻居无法访问的解决

Posted by 妖刀 17 March, 2007 (0) Comment
  1. 关闭xp自带的防火墙(注意:关闭后可能会有网络安全问题)。
  2. 在 控制面板 =》管理工具 =》计算机管理 =》用户 中,双击 Guest,去掉“帐号已过期”前面的勾。

Categories : 技术 / 设计 Tags :