Skype 静态链接版本不能输入中文的问题

装了FreeBSD port里的skype,其实是Skype for Linux的静态链接版本。 尝试聊天的时候,发现不能输入中文…… 我很怀疑这个事情是静态链接而起的,于是去搞了个动态链接的版本…… 但是这个版本跑起来就卡死…… 我怀疑和DBus之类有关系,反正看trace是卡在一个锁上…… 多半是BSD模拟的问题 于是尝试选项–disable-api,然后居然就不卡死了…… 试了一下,也可以用输入法了…… 原来右键菜单里连输入法选项都没有,现在可以选了…… 于是搞定了…… 所以其实重点就是:换动态链接的版本…… 当然各位用Linux的多半直接去包管理器里装了,当然是动态链接版本…… 闭源软件真是出了问题也没法调啊……

关于XIM的那些输入模式

我一直弄不清楚,over-the-spot, on-the-spot, off-the-spot, root-window这帮东西到底有啥区别 今天查了某oracle资料:http://download.oracle.com/docs/cd/E19504-01/802-7789/6ibcsnfb8/index.html 首先这些都是预编辑内容的模式,就是那些你打了但是还没确认的那些字的显示方法…… 貌似over-the-spot是在光标处会出现当先的预编辑内容,但是不会把原有内容自动后移,因此新内容显示起来会覆盖在老的上面。确认之后,新的会把老的挤到后面去。 on-the-spot也是在光标处出现预编辑内容,但是会在预编辑,也就是还没确认的时候就把老内容挤到后面去。 off-the-spot貌似是在窗口左下角之类的位置出一个窗口自己显示预编辑内容,反正应用程序不用关心…… root-window据说会在屏幕底下划出一块来显示预编辑内容,莫非是类似从前dos的输入法…… X上没见过。 反正前两个都要程序管,第三个要输入法自己画。 搞这个是因为,今天实现了GeManX对于输入法预编辑的支持,顺路看了看这方面资料…… 因为新ibus好像不关心你程序自己说自己支不支持预编辑,他总是认为你支持,这就导致本来不支持的GeManX没地方显示预编辑内容了…… 另,有人知道gtk_im_context_get_preedit_string()返回的东西啥编码么?一定是UTF-8?根据locale?

Android市场无法开始下载的问题以及解决

在学校的时候,Android市场上的东西下的好好的。回家之后,虽然能显示开始下载,但是从来也不会真的开始……一开始以为某地被屏蔽,于是开始抓包。但是确定开始下载的时候,连SYN都没有……去往上查,说要允许5228端口。但是根据抓包的情况,一直只有到mtalk.google.com:5228的连接,怎么看都是GTalk的事情。其实这里是被误导了,导致我继续研究了好几天也没有结果。今天猜测是不是这两者有关联。于是研究了5228的情况。在学校可以连mtalk.google.com:5228,在家连不上,看来是这个糟糕的有线通的问题。于是搞了个变通的办法:改hosts,把这个地址指向我的笔记本,然后在笔记本上用ssh把这个端口通过ssh隧道forward到目的地去,隧道出口在学校,因此就可以连上了。搞完之后一试,果然能上GTalk了。出乎意料的是,数秒之内,那些下载都开始了……这是什么意思……………… 你个android市场是要验证用户身份,但是为啥和GTalk捆绑在一起………………反正最后是可以下了……

原来 divert 还要指定ipv4…

最近发现本子的IPv6不能用了…… 一开始还以为是学校路由器有问题后来发现win下可以用…… 另外,刚开机可以用……而且ping6的同时tcpdump会导致系统死锁…… 所以怀疑是软件问题之后想起来,最近为了让新买的Desire能上网,让本挂在无线网上面,设置成了网关…… 还带NAT的……启动那个脚本之后,果然IPv6就挂了……删掉divert 8668 ip from any to any via msk0之后,果然就好了…… 但是我指定的明明是ip,应该是IPv4吧……去往上搜,搜到了FreeBSD 6的Errata,里面说,因为divert套接字不支持IPv6,所以指定ip的话,IPv6的包会被丢掉…… 要指定ip4这样……原来ip指的是所有IP包么!改成divert 8668 ip4 from any to any via msk0果然就一切正常了…… 不能想当然啊…… 另外,这个问题FreeBSD 6就有了,到现在divert套接字还是老样子么…… 真是没人干活啊…… 至少对于divert和v6特殊处理一下么……

给lftp报了一个bug

学校用的proftpd,为了照顾windows用户,设置了UseEncoding GBK GBK这样,proftpd返回的FEAT里面,有LANG,没有UTF8。但是lftp只要知道服务器支持LANG,就会发个LANG过去。只要收到LANG的回复,就认为服务器用的UTF-8……虽然LANG和UTF8都是RFC 2640定义的,但是支持LANG不一定就是UTF8啊……所以发了个patch给作者,不知道他会不会管……— src/ftpclass.cc.orig        2010-04-29 17:20:28.000000000 +0800+++ src/ftpclass.cc     2010-04-29 17:20:42.000000000 +0800@@ -4100,8 +4100,11 @@    case Expect::LANG:       if(is2XX(act))       {–        conn->utf8_activated=true;–        conn->SetControlConnectionTranslation(“UTF-8”);+                 if (conn->utf8_supported)+                 {+                         conn->utf8_activated=true;+                         conn->SetControlConnectionTranslation(“UTF-8”);+                 }       }       else if(act==530)         conn->tune_after_login=true;