Author Archives: csslayer
为什么Gtk程序总爱给我找麻烦
http://code.google.com/p/fcitx/issues/detail?id=528 这是起因,当然铺垫还有很多,我就懒得说了。 Glib 使用 C 实现 signal 的一个缺陷。具体来讲就是这么回事,在glib里面,很多时候处理signal,为了通用,以及能够使用同一个函数作为signal_connect,于是所有的函数指针都会转化为 (void*)(G_CALLBACK) g_signal_connect(context->slave, “commit”, G_CALLBACK(_slave_commit_cb), context); 那么问题在于,缺少对 callback 函数的合法性验证,可能会出现各种潜在的问题。在不是有意为之的前提下,程序员仍然会更容易犯错误。 拿pidgin里面的一个问题举例,pidgin的状态输入框,不知道有没有人注意到,在里面用backspace和输入法是很不正常的,会同时删掉输入法这边和pidgin里面两个字符。 为什么?明显是一个按键事件被搞了两次。 我的一个朋友花了一些时间去debug这个问题: Finally I traced it down to the problem. 我本来是看见这么一行: g_signal_connect(G_OBJECT(gtkconv->entry), “key-release-event”, G_CALLBACK(gtk_conv_key_press_cb), NULL); 去掉就没事了。 这个函数如下: static void … Continue reading
M17N & Mozc
Compiling Mozc is a really just as hard as Chromimum, so I don’t recommend to try it now, I haven’t finished doing all the build system related work for Mozc. fcitx-m17n is quite a lot simple, just use the regular … Continue reading
VLC 播放 HTTPS Stream
总之,据说vlc是少有的可以播放https stream的播放器。 但其实还蛮坑爹的……不知为何vlc是识别系统的ssl证书的(至少在我的arch上是的)。 以下方法仅在arch上测试过。 mkdir -p ~/.local/share/vlc/ssl cd ~/.local/share/vlc/ssl ln -s /usr/share/ca-certificates certs 于是就是这样了。也不用像某些网站一样导出根证书什么的再复制,直接用系统的证书就好啦。(除非你想自己签名个不合法的)不过这年头反正ssl证书有startssl这种免费证书存在。 我折腾这是为啥呢?因为OwnCloud的Ampache流播放音乐之前HTTPS一直不行,后来才发现是这个原因。于是只要你使用phonon-vlc的话,OwnCloud + HTTPS + Ampache + Amarok 是不会有问题的了。 P.S. 我发现 gstreamer 也可以……我到底是在闹哪样……