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

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

折腾

折腾了几天,搞了各种事情* 升级Avant Window Navigator到trunk(0.3.9)有一大堆的事情,比如说:# bzr up之后,有冲突,干脆全部干掉重来。发现configure有问题,引用了莫名其妙的ac_python_version变量,这个东西哪里都没有。只好手动改成2.6。# 引用了libdesktop-agnostic,ports里没有,上网去发现貌似也在launchpad上边,可能也是awn这群人搞的,遂bzr co下来# 结果编译的时候有诸多问题,上网去,发现有bug-report,说是vala版本太新,而且他还branch了一个various-fixes分支出来# 第一次听说vala,貌似是利用gobject这套系统,配合一个类似于C#的语言,给C以面向对象能力。编译的时候先弄成C再编译# 再bzr co了那个fixes branch,终于好了。回头对付awn,还算比较容易# 新版多了个curve模式,貌似速度也好不少,稳定性也是,看来这个rewrite还不错* 升级awn-extras也有不少事情:# 发现里面的各个菜单组件都或者崩溃或者没有程序菜单,追溯到python-gmenu,最后看调试信息,发现没有applications.menu文件# 本来想生成一个完了,但是下了个菜单编辑工具alacarte,发现这个里面已经有程序菜单了…… 而且gnome-panel也有…… 标准不统一啊……# 之后再查资料,发现说XDG这套标准允许有前缀,并且通过locate得知有一个gnome-applications.menu在恰当的地方# 最后通过把XDG_MENU_PREFIX设为gnome-解决# 之后又是发现那个Media Player Applet不能放大的(不是文件大小)视频。怀疑和之前totem的问题一样# 看代码发现用的playbin这个gstreamer组件,直接gst-launch,果然出错,而且信息和totem的一样# 上网搜了一下,有人说totem的pkg-message里说了这个问题,果然有…… 用了就好了# 说明这个问题不只totem有,用gstreamer的都有…… 为啥默认的那些shm的参数那么小……* xps文件查看上两天有人发来xps文件,不能看…… 去网上下了XPS Essentials装,结果wine运行说有gdiplus的函数没实现…… 搜了之后,发现新版wine实现了,遂下载新版,结果换了一个函数…… 只好拷了一个gdiplus.dll过来,运行倒是可以,就是换页要好几秒……于是去网上找开源解决方案,找到ghostxps,后来发现就是ghostscript那个公司做的。直接转pdf,10M的xps变成了5xxK,但是里面图片质量很差。去网上看了一下,对latex转pdf有人说应该先转ps再ps2pdf,应该是同理。但是直接转出来的ps竟然有4xxM…… 再转pdf,有17M,还能忍受,质量很好* skypebsd ports里面那个skype是static的2.0.0.72-oss版,我输入不了中文,遂尝试新版。结果新版2.1.0.xx的dynamic版都会卡死在futex系统调用上,而static版不但不能输入中文,还没有声音……搜索得知,新版用了pulse,遂用rpm安装alsa的pulse插件,linux的pulse库等,结果运行时说shm_open没有实现…… 还是不行又尝试装了alsa的oss插件,并且设为默认,这次终于有声音了,但是…… 不能录音……最后还是回归老的了……* 自动挂载本来我山寨了一个自动挂载脚本,利用devd的CDEV建立事件,在ntfs/*和msdosfs/*出现的时候,自动挂载到/mnt/*结果现在有了iPod,就有问题了:我一般只是想充电而已于是要挂载自动camcontrol eject,问题是CDEV事件不包括设备名,只有label。在找不到反查工具的情况下,只好自己从label查设备大致上就是一个枚举,利用gpart结果得到所有设备,然后用glabel得到上面的label,并且进行匹配,符合的就是对应设备。搞的时候发现,glabel status的第一行输出一直是Name Status Components,而Name下面显示的就是label,而且Name的最后一个字母严格和label最后一个字母对齐,通过这个,可以保证从输出结果得到的label是完整的label,不多不少。现在碰见iPod就会自动卸载了,真不错……* easytag的崩溃问题本来easytag给某些歌写tag的时候,总是崩溃。这两天研究一下,发现都是不正常的ape tag引起的。虽然easytag本身只写id3 tag,但是他写的时候,会先清除ape tag,而要清除就要先解释,于是就挂了…… 我搞了py-apetag下来,结果删tag的时候也说不能解释……你们删除tag就不会简单地先删掉再建一个空的么…… 非要解释……最后手动把文件结尾APETAGEX开始的东西全干掉,世界清静了…… 感想:# gstreamer好强大,我视频库里那些视频都可以放…… 虽然对字幕的支持还是令人怀疑# 发现一个好东西,gst-editor,类似于windows里directx开发包里那个编辑directshow filter图的那个东西,这里是编辑gstreamer …

Continue reading ‘折腾’ »

终于有图标了

如果你用的是Unix类系统,并且还是非标准桌面(例如LXDE一类……)并且发现,你启动file-roller,pcmanx,nautilus等的图标都很奇怪或者没有那么可能是这个问题:系统不知道用啥图标,或者找不到图标去/usr/local/share/icons(Linux同学们可能没有local)看看有哪几个是有不少图片的,并且有index.theme的,可能就可以作为图标主题然后在~/.gtkrc-2.0里面加上:gtk-icon-theme-name=”<目录名>”就会有图标了……如果试了都不成,就去装gnome-icons-这个样子的软件包再看看吧……之前我发现是gnome-settings-daemon运行之后就会有图标但是我又不喜欢一切都由gnome控制面板一类的设置,gtk-chtheme多好终于pcmanfm启动的时候,给了个提示,解决了问题……PS. PCManFM作者还写了PCManX,貌似和LXDE还有关系,真nb……

高中同学聚会

前天鱼头说,老头组织同学聚会。看了手机才发现老头发了短信,顺便还告诉了韩XM。昨天早上,老头通知十点到附中门口集合,我五十七分左右到的,已经有四五个人了吧。等了一会儿,来了十一个人。大家决定不再等了,先找个地方坐坐。于是大家往一条街走过去。老头先去探路,回来之后,大家往一条街深处进发。经过集体决定,一群人走进了图门烧烤。点了一些饮料之后,大家开始谈天说地。范围无非学习、生活之类。老头提议说各人说一下各自在研究什么,将来的发展方向。随着钟诚的"说来话长……",这个话题就此结束。我这桌有LinS,ZhuHY,HanXM,FengCD,后来又把ZhangLW,WuH叫了过来,这样就有7个人,而老头那桌还有鱼头、DongCJ、XuMM、LiJS、ZhongC。我们这桌大部分人基本上没怎么吃过烧烤,只有FCD好像专业一点,于是一开始点得太少,并且对于生熟程度掌握得也不怎么行……后来又补点了一批,大部分烤的东西都有过熟的嫌疑……饭后,大家到复旦南区打篮球。一开始12个人打全场,我在拍照。谁知道碱性电池如此之弱,充电电池拍完后,每组碱性电池大概也就撑了十几张……于是,接下来分组打球,我也上场了……13个人,分成4/4/5,我和ZhongC算作一个分在一组。在我们组其他成员努力之下,我们组也胜过好几次,不过体能消耗很快,迅速不支……我有一年没打过篮球了吧……接下来,走了3个人,剩下的人到LiJS找的地方打牌。复旦29号楼,门口挂着学生会的牌子。本来想在大厅里面打,看门老大爷说,我干脆开个房间给你们打算了。就情况看起来,貌似管得还是很松的,或许冒充一下也能混过去……我和HanXM要去买电脑,于是早早离开了。剩下8个人2桌80分。我们乘车到八佰伴旁的太平洋,花1个小时买了一台台式机的机箱,在麦当劳解决了晚饭,分头回家。同学见面真令人愉悦~ 大家好像都没有什么变化,或许变化都是内在的吧……相册可见 http://picasaweb.google.com/Henry.Hu.SH/2009#鱼头的校内日志: http://blog.xiaonei.com/GetEntry.do?id=358491034&owner=231886837 题外话整理照片的时候,考虑是传flickr还是Picasa。考虑到flickr容易被封,Picasa从前就传了一些,所以还是picasa。直接用网页版传,3.4M上去还是3.4M,总共1G空间,还没我存储卡大,这不就很快满了么……所以去找Picasa软件,看见linux版,3xM,正想下,发现下面说:包含wine,picasa,gecko…… 原来还是wine这条路么……于是直接下windows版安装程序,只有9M…… 用wine安装运行,非常顺利啊~传照片也很好,传上去的是1600×1200,~300K每张,也挺清楚的,还有EXIF数据。看picasa的信息的时候,还说是用于linux的picasa…… 它检测到wine了么……

Sogou 的浏览器

上次说到的 Sogou 浏览器终于公开了,搜狗浏览器 1.0 beta。还是测试版,的确能够在教育网上外国网站。但是这个东西是ie内核的,我这里不能用。所以只好研究一下。先用 tcpdump 看一眼,发现是和118.228.148.27~30的几个服务器的80端口通信,于是怀疑这个东西用了个http代理。然后用 wireshark 抓下来,果然是代理。用nmap知道,那个代理是个linux,跑着squid。找了个包头,然后一行一行删掉,剩下不能删的: GET http://www.intel.com/ HTTP/1.1Host: www.intel.comX-Sogou-Auth: 4D929DA9BB4DF2966799B7761245A98B/55/bad36d282a55d332X-Sogou-Domain: 24181F5B2C160409035C061D3EX-Sogou-ResponseCode: 200X-Sogou-Tag: 5bccdce35ecd20cab326fb0b746cce7bX-Sogou-Timestamp: 494f30c4 把第一行的GET后面的地址替换成随便什么地方,貌似都行~ 也就是说,想去哪里就去哪里。改了 GET 后面的值,然后用 nc,验证通过。sogou 的弱的地方,在于只检查了 Host 后面的域,目前怀疑 X-Sogou-Domain 是 Host 后面的值的某种散列。但是 squid 依靠 GET 后面的地址确定目标地址,而且不要求和Host一致…… 这样 sogou 的检查就等于白干。实际到firefox里面,装个 Live HTTP Headers,然后把除了 GET 之外的东西复制到点Replay…出来的那个框里面,然后点 Replay,并且指定118.228.148.27之类的作为代理,就能够获取网页内容~有了这样的信息,开发一个能够直接利用那个代理的浏览器应该也很容易了,只要在每个请求后面加上那堆东西就可以了……我怀疑一个脚本就能搞定……另外,那个 squid 好像不care cookie一类的东西,本来 intel.com 就是有 cookie 的,删了也没有关系~所以说,sogou 太弱了……还有,那个包是虚拟机里的xp下抓的,所以应该看不出 IP 吧~

SRT

学期初,报名参加了一个SRT(学生研究训练),关于智能手机平台上的程序开发。由WuXiaojun和XuMingxing两位老师指导……SRT项目第一次讨论会上,进行了分组。有Nokia手机的一伙人加入了Symbian组,有Windows CE手机的一群人加入了Windows CE组。我和另一个学长,以及某没到场的同学,分到了iPhone/Android组。从这个分组来说,我们基本上是分到了一个没人要的组。毕竟Symbian和Windows CE发布已经很久了,这两个平台上有众多的开发人员,也有许多相关的参考书籍和文献,设计起来比较容易,而iPhone和Android毕竟是新生事物,相关资料还很少。 Android情况还算比较好,毕竟Google当初宣传Android的一大优势就是开放,因此用Android写程序自然会比较容易,也有Google的支持。经过研究,Android的开发,其实主要就是下载安装SDK,然后装个eclipse插件,就可以开发,调试了。SDK里面带有模拟器,用起来挺方便的(虽然启动很慢……)。我下了Linux版SDK,发现模拟器没法用。后来找到了Google公布的源代码,原来是用qemu模拟的,SDL负责显示,不过都是Google修改过的版本……编译出来一个静态的emulator,替换掉SDK里面的,就可以正常工作了。我写了个hello world之后,就去搞iPhone去了。现在,组里那位学长已经成功写出井字棋了。 iPhone就麻烦多了。虽然Apple出了SDK,但是只能在MacOSX上跑,并且要编译出能够在iPhone上跑的程序要99美元……幸好hacker们搞了Jailbreak,破解了iPhone的限制,是个程序经过随便什么代码签名就能跑,但是我没有Mac阿……Hacker们也搞出了第三方的SDK,基于 llvm-gcc 和 Open Darwin CC Tools。Google Code上有个iphone-dev,就是这个东西。照着网上的说明,我先编译出了 iphone-dev 项目的结果。但是,拿这个编译个命令行Hello World还行,编译图形界面程序,就说有东西没定义。折腾了半天,知道这个只能用于1.x版本的iPhone,2.x版本需要新的第三方SDK…… iPhone在1.x到2.x的过程中,改变了Objective C的ABI…… 编译target也从arm-apple-darwin(其实是8)变成了arm-apple-darwin9又折腾了至少十几个小时,终于搞出了新版SDK,编译出了图形化的程序…… Apple在新系统还引入了其他限制,图形界面的程序从命令行启动会被Kill,只有从SpringBoard(iPhone的类似于桌面的系统程序)才能启动…… 仿造了一个应用程序条目之后,终于从SpringBoard启动成功,图形化的Hello World阿~话说Apple公布的SDK还是很有帮助的,让第三方SDK编译过程简化了不少…… 但是感觉第三方程序严重受制于Apple,Apple改变一点东西,第三方程序编写者就有很多东西要改,除非加入Apple的某计划…… 总之,现在在iPhone和Android上面都能写带GUI的程序了~ hacker威武~

linux QQ 试用

腾讯出了个 linux QQ,不管是出于支持国产,还是出于争取用户,反正终于有官方版的了。为了这个能够在BSD上跑,我还更新了一堆包。BSD 上 port 里有的 linux 包都太老了,gtk还是2.6的,QQ没办法用,说有没定义的东西。我说你QQ怎么就不搞一个静态编译的……然后更新了 gtk 和 glib,为此更新了 pango,然后是 cairo,然后装了 pcre, xcb, pixman… 搞了半天终于跑起来了。 总的来说,功能很弱,腾讯那个网页宣扬的功能,也就是全部功能了。图片能收不能发,文件不能传,群只能聊天无法管理,没有声音提示(这个最BT! 别人发给我消息我不知道……)然后不支持只显示在线用户,连把好友换个分组都不行……说起来还是 preview 版,所以不能期望太高。毕竟到目前为止还没有 crash 过,这个就比我 wine 出来的 QQ2008 就好多了……官方出了QQ,总也不是什么坏事。反正不管谁出的,谁的稳定,谁的好用,就用么…… 毕竟服务是腾讯提供的啊…… 哪天谁像ubuntu老总那样NB了,钱多了开个公司,运行一个聊天服务器,发布开源的聊天软件,倒是很不错~  现在比较有希望的大概也就是 google 了。