猫颜文字 For Fcitx QuickPhrase

Felix Yan | 2012-05-13 | 43 views

嗯, 原版来自猫老师的 http://catfan.me/_/p18814 喵, 俺只是简单转了下格式.
把下面的内容放到 ~/.config/fcitx/data/QuickPhrase.mb 就可以了(没这个文件/目录就建一下)
阅读全文(Read the rest of this entry »)

在 Xfce4 里一键切换 Composite 开关

Felix Yan | 2012-05-13 | 18 views

常用 KDE4 的用户可能很熟悉 KDE 的 Alt-Shift-F12 切换 Composite 状态, 下面咱让 Xfce4 拥有相同的效果:

xfconf-query -c xfwm4 -p /general/use_compositing -T

在 Xfce4 的快捷键设置里, 定义一个快捷键(我选的是Ctrl-Alt-Backspace, 不知为何 Alt-Shift-F12 无法选用), 绑定上面的命令, 就可以了 :)

Google TalkPlugin (包括 Hangout) 不能正常使用与 iptables NAT

Felix Yan | 2012-05-04 | 53 views

嗯, 准确的说, 如果 iptables -t nat 吃掉了 lo 的包 (MASQUERADE 之类的), Google TalkPlugin 就会傲娇掉, 具体表现为无论刷新重装多少次, 都提示没有连接, 网上介绍的各种方法都无效.

[006:450] Started GoogleTalkPlugin, path=/opt/google/talkplugin/GoogleTalkPlugin 
[006:450] Waiting for GoogleTalkPlugin to start... 
[007:451] Read port file, port=52545 
[007:453] Initiated connection to GoogleTalkPlugin 
[007:551] Socket connection established 
[007:551] ScheduleOnlineCheck: Online check in 5000ms 
[007:552] Warning(clientchannel.cc:669): Connection lost while waiting for authorization reason=0 
[012:567] HandleOnlineCheck: Starting check 
[012:567] Warning(clientchannel.cc:778): Not connected; restart already tried, giving up

简单举例, 引起问题的会吃掉 lo 的包的规则如:

-A POSTROUTING -j MASQUERADE

如果想尽量保持原语句正常功能, 而仅仅排除掉 lo 的包, 可以用:

-A POSTROUTING ! -o lo -j MASQUERADE

-A POSTROUTING -o ‘!lo’ -j MASQUERADE
注意: 网上各种教程都玩坏了, ! 和 lo 之间不能有空格, 且用单引号以防止被转义.

更新: ‘!lo’ 也是错的!!!

当然如果能指定 -o eth0 什么更准确的当然最好啦 :)

最新 nvidia 295.20 驱动造成 gnome-shell 搜索时崩溃的临时解决方案

Felix Yan | 2012-02-26 | 105 views

最近的 nvidia 295.20 驱动会造成 gnome-shell 搜索时崩溃, 查看自己的log有类似如下输出者即为此 bug 所致:

/var/log$ sudo grep gnome messages.log | grep nvidia
Feb 15 14:16:16 archdesktop kernel: [10841.584296] gnome-shell[9257]: segfault at c ip b5433ea3 sp ab7f3c8c error 6 in libnvidia-tls.so.295.20[b5433000+3000]

下面翻译来自 Arch 官方论坛的一些临时解决方案(任选):

  1. 清除GLCache的旧缓存文件:
    rm -rf ~/.nv/GLCache

    不过肯定过些时会重现这个问题

  2. 清空最近打开文件记录:
    echo "" > ~/.local/share/recently-used.xbel
    sudo chattr +i ~/.local/share/recently-used.xbel

    第二句会让文件处于”只读”状态, 使问题不再重现.

  3. 降级 nvidia 驱动到 290.10 或更早的版本

参考资料: https://bbs.archlinux.org/viewtopic.php?id=135826

在地址栏输入一个字母后的网址

Felix Yan | 2011-10-25 | 152 views

好友的日志里看到了一份他的网址列表, 随手整理了一下自己的 “These websites best describe me.”

a is for aur.archlinux.org //好地方不解释…
b is for bilibili.tv //这个..必须的..看糟糕物的地方
c is for chdbits.org //下电影的地方…
d is for dns.he.net //我主要的DNS托管地
e is for ebay.com //好吧, 其实上的挺少的, 不过其他e开头的网址开的更少吧…
f is for felixcat.net //这个必须的= =虽然域名改了一段时间了, 但是访问次数还是没有老域名多…
g is for g.camoe.org //…下糟糕东西的地方
h is for hub.hust.edu.cn //..查分选课的地方
i is for iptorrents.com //也是下电影的地方…
j is for jpopsuki.eu //下糟糕原声的地方…
k is for kmgtp.org //HUDBT,不过现在去的非常少了
l is for lowendbox.com //找便宜测试VPS的地方…
m is for minecraftwiki.net //这个..嗯..大家懂的…
n is for nicovideo.jp //看糟糕物的地方…
o is for open.weibo.com //查新浪微博API的地方 = =…(这个悲剧
p is for pastebin.com //好吧..经常贴东西…
q is for quickweb.co.nz //其实没上过几次…
r is for report.hust.edu.cn //..每次网挂了都上去看看什么情况
s is for stackoverflow.com //这个必须的~
t is for taobao.com //这个必须是淘宝了…
u is for u2.dmhy.org //又是下糟糕物的地方……!
v is for vtk.org //好久没折腾的东西…
w is for webhostingtalk.com //也是一个找廉价测试主机的地方
x is for xda-developers.com //折腾android的地方…
y is for youtube.com //这个也必须的了…
z is for zeromq.org //也是好东西 嗯

于是…有近一半都是糟糕物…果然我坏掉了!!!

解决SSH远程登录后屏幕尺寸不对的问题

Felix Yan | 2011-08-31 | 137 views

首先解释下标题: 其实我想表达的是: 解决SSH远程登录后本地终端窗口大小改变远程屏幕尺寸没有随之改变导致显示混乱的问题, 但是太长了, 嗯.
我的一部分Linux VPS存在这个问题, 而另一部分是正常的; 一个由镜像默认安装的Ubuntu 10.04 Server一定存在这个问题.

具体解决方法其实很简单, 只是因为搜索的时候有点小纠结, 所以当做译文吧:
编辑 /etc/screenrc
找到

termcapinfo xterm 'is=...'

注: …表示还有很多长得像乱码的字符, 反正前面部分能对上就行
修改为:

termcapinfo xterm* 'is=...'

也就是说, 只添加那个*(星号).
之后重新连接/重新打开screen即可.

之前因为连上ssh并没有启动screen, 而是直接打开mtr, rtorrent 之类的程序, 也存在此问题, 所以没有怀疑到screenrc头上去 = =||||

参考资料:
http://lists.gnu.org/archive/html/screen-users/2010-12/msg00027.html

让libTorrent优先选择教育网IPv6地址

Felix Yan | 2011-08-19 | 175 views

猫在教育网机子上挂PT, 但是机子同时是内网的IPv6网关(HE的/64), 结果rtorrent每次返回给tracker的&ipv6=后面总是我在HE的2001:470:xx:xx::1, 和教育网PT上其他用户之间连接效果差爆了.

在折腾了几种workaround无效后, 最后不得不改libtorrent的代码了! 由于ipv6部分本身就是由一个patch加上去的, 我只需要对这个patch再patch一次即可:
安装过程就不再赘述了, 满网上都是的…

--- A/libtorrent-0.12.6-ipv6-07.patch	2011-08-19 00:02:03.603735921 +0800
+++ B/libtorrent-0.12.6-ipv6-07.patch	2011-08-19 00:36:14.824983083 +0800
@@ -417,7 +417,7 @@
 diff -Nur libtorrent-0.12.6.orig/src/net/local_addr.cc libtorrent-0.12.6/src/net/local_addr.cc
 --- libtorrent-0.12.6.orig/src/net/local_addr.cc	1970-01-01 01:00:00.000000000 +0100
 +++ libtorrent-0.12.6/src/net/local_addr.cc	2010-07-23 14:44:51.000000000 +0200
-@@ -0,0 +1,336 @@
+@@ -0,0 +1,340 @@
 +// libTorrent - BitTorrent library
 +// Copyright (C) 2005-2007, Jari Sundell
 +//
@@ -502,29 +502,33 @@
 +#ifdef RAK_USE_INET6
 +// IPv6 priority, from highest to lowest:
 +//
-+//  1. Global address (2000::/16 not in 6to4 or Teredo)
-+//  2. 6to4 (2002::/16)
-+//  3. Teredo (2001::/32)
-+//  4. Empty/INADDR_ANY (::)
-+//  5. Everything else (link-local, ULA, etc.)
++//  1. cernet & cernet2 address (2001:250::/32 and 2001:da8::/32)
++//  2. Other global address (2000::/16 not in 6to4 or Teredo)
++//  3. 6to4 (2002::/16)
++//  4. Teredo (2001::/32)
++//  5. Empty/INADDR_ANY (::)
++//  6. Everything else (link-local, ULA, etc.)
 +int get_priority_ipv6(const in6_addr& addr) {
 +  const uint32_t *addr32 = reinterpret_cast<const uint32_t *>(addr.s6_addr);
 +  if (addr32[0] == htonl(0) &&
 +      addr32[1] == htonl(0) &&
 +      addr32[2] == htonl(0) &&
 +      addr32[3] == htonl(0)) {
-+    return 4;
++    return 5;
 +  }
 +  if (addr32[0] == htonl(0x20010000)) {
-+    return 3;
++    return 4;
 +  }
 +  if ((addr32[0] & htonl(0xffff0000)) == htonl(0x20020000)) {
-+    return 2;
++    return 3;
 +  }
-+  if ((addr32[0] & htonl(0xe0000000)) == htonl(0x20000000)) {
++  if (addr32[0] == htonl(0x20010250) || addr32[0] == htonl(0x20010da8)) {
 +    return 1;
 +  }
-+  return 5;
++  if ((addr32[0] & htonl(0xe0000000)) == htonl(0x20000000)) {
++    return 2;
++  }
++  return 6;
 +}
 +#endif
 +

给用NexusPHP的PT站写的分流/保种员自动发工资脚本

Felix Yan | 2011-08-16 | 175 views

如题.使用说明:
1, 为实现统计本月流量/保种时间(NexusPHP默认的数据表没有留这些数据), 需要在users表里增加 downloaded_lastmonth, uploaded_lastmonth, seedtime_lastmonth 三个字段.
2, 需要获取分流员/保种员信息, 也需指定pipeliner/guarder字段(enum或boolean, 后者需略微改动此代码)
3, 需要python2.x环境, 以及python-MySQLDb库.
4, 需要服务器上有正常的crontab, 每月1日0点执行即可.
5, 此脚本还提供了记录上月实际上传下载(不含优惠信息), 以及下载时间的统计部分, 相应部分默认已注释掉, 可以手动替换启用. 如需显示在userdetails页面上, 只需做一个简单的减法(当前-上月). 实际上传/下载量的统计还需修改announce.php.
6, 工资(魔力/邀请)参考下面的设置修改. 本初始数据来自CMCT-PT的考核标准和奖励细则.
7, 修改数据库连接字符串的相应部分, 即可用.
阅读全文(Read the rest of this entry »)

让 Linux 里的 .xmind 文件能被双击打开

Felix Yan | 2011-08-04 | 114 views

这其实只是一个简单的小trick :)

ubuntu和arch默认安装的xmind, 如果直接在WM/DE的文件管理器里双击打开, 只会打开一个新脑图, 而不会打开你指定的文件, 这个问题还是相当annoying的. 下面是解决方法:

编辑 /usr/share/applications/xmind.desktop 文件,
找到 Exec= 开头的那一行, 修改为:

Exec=/usr/share/xmind/xmind-bin %f

(如果安装位置不一样请自行修改, 总之一定要是这个-bin的文件, 而不能是直接xmind %f)
(其实很纳闷为啥xmind的策略这么诡异- -)

之后保存退出, 然后xmind文件就能直接打开啦!
不过这样仍然有一个问题: 打开的xmind里会有两个标签页, 一个是你打开的文件, 一个仍然是个新建的脑图, 而且默认焦点在新建的脑图上, 这个还是非常不爽的…希望各路大神提供解决方法 ^_^

参考资料: http://code.google.com/p/xmind3/issues/detail?id=200

内网Windows XP用户使用ISATAP隧道的方法(附自动配置脚本)

Felix Yan | 2011-07-28 | 445 views

声明: 本文采用方法来自 http://blog.lifetoy.org/2010/01/31/isatap-behide-nat/, 我仅仅是写了一个自动配置脚本(不包括配置路由器).

首先, 这个方法只能让内网一台机器用上ISATAP隧道(仅仅是简单的转发了相关数据包而已). 主要步骤分为两个:

  • 配置路由器转发协议号41的数据包到你的内网机器
  • 修改本机的ISATAP相关配置(拥有外网环境则会自动完成这一步, 内网环境需要手动处理一些问题)

只有一部分路由器本来的FIRMWARE支持转发协议号41的数据包, 如果你用的路由器不支持, 那就只能尝试dd-wrt或者openwrt了. 如果你的路由器很不幸的也不能刷这类自定义固件, 那也就没办法了..(嗯)

Linux类环境可以使用iptables实现转发(假设你的内网IP地址为192.168.0.10, 网关IP为192.168.0.1, 下同):

iptables -t nat -A PREROUTING -d 192.168.0.10 -p 41 -j DNAT --to 192.168.0.1

openwrt则可以修改文件 /etc/config/firewall: (此段为转载)

config redirect
option src                      wan
option dest                     lan
option dest_ip          192.168.0.10
option proto            41

至此, 第一步就做完了.

第二步, 可以用下面的脚本自动完成.
原文给出的bat脚本我在win7和winxp里都试过, 不能发挥应有的作用, 而且每次外网ip变动时都需要修改, 这对于动态ip用户更是无法接受的. 于是我用Python重写了一个脚本, 目前只能在XP系统使用. (其实要在Win7下用应该只需要很小的修改, 不过我暂时没测试环境:P)
注: 脚本中写的是上交的isatap隧道服务器配置, 如需使用其他服务器, 稍加修改即可.
阅读全文(Read the rest of this entry »)

QR Code Business Card