原来我错过了留言

一直只订阅了自己的评论RSS,没有注意留言,今天才发现有几个朋友留言了,在此说声sorry。

虽然估计留言的人自己都不记得了,不过还是回复了一下。

未分类 Comments(0) 2009年12月04日 22:03

简单试用Android下的三种输入法

今天看到QQ输入法也推出了android版本,突然有想试用其他输入法的冲动。于是索性把QQ输入法和搜狗输入法都下下来体验了一下。

以下是不完全体现感受:

  • 谷歌拼音
    • 优点
      • 方便修改输入错误
      • 整句输入
    • 缺点
      • 无9宫格键盘
  • 搜狗拼音
    • 优点
      • 垂直9宫格键盘,水平全键盘
      • 软键盘提供小工具
    • 缺点
      • 无整句输入
      • 手机键盘输入完成后屏幕有白条
      • 修改输入只能从后往前删
  • QQ拼音
    • 优点
      • 9宫格键盘
      • 笔划输入
    • 缺点
      • 无整句输入
      • 不能自动横屏全键盘
      • 全键盘热键太小,有数字键
      • 使用手机键盘输入时修选词没有数字标号
      • 开启手机键盘后轨迹球与非输入键无法使用
      • 修改输入只能从后往前删

从以上对比可以看出,谷歌拼音是为整句输入设计的,而搜狗拼音和QQ拼音是为字词输入设计的。我习惯了整句输入后用字词输入很不习惯。谷歌拼音android版(moopy)用的是和桌面版(goopy)相同的技术,整句输入是根据概率来选词的,只是词库和语言模型稍微小一点而已。

由于试用时间比较短,输入准确性不能用感觉判断,于是试了一句新闻:“台湾公布第三季增长率仍未逆转正”,谷歌拼音的输入感觉明显好过其它两个。不过平时使用的时候谷歌拼音也经常有牛头不对马嘴是现象,应该是手机版的词库和语言模型太小了。

由于搜狗和QQ拼音只是针对词组输入设计的,可能是目标用户输入串都不会太长,没有提供谷歌拼音那样直接向上可以修改输入串的功能。对我来说是不方便,不过对于�台词组输入来说影响应该不是很大吧。

搜狗和QQ最大的亮点是提供了9宫格软键盘。这点搜狗做得最好,可以自动在竖屏时使用9宫格,横屏时使用全键盘,非常方便。而且搜狗的软键盘提供了一个工具界面,可以直接用它来操作光标,选择/复制/粘贴,非常贴心的设计。QQ的软键盘比较傻,默认都是9宫格,横屏要手动切换成全键盘,而且全键盘因为直接包含数字键的关系,按键非常小,用起来不方便。谷歌拼音只提供了全键盘,横屏的时候按键很大,很舒服,但是竖屏的时候就只能是个摆设了。

其实9宫格输入已经可以算是另一种输入法了,重码比较多,用户体验需要重新设计。

另外QQ输入法不愧是beta版,直接使用G1键盘的体验非常差。它貌似截取了整个键盘,但是在非输入状态下没有把它不使用的按键释放出来,结果轨迹球、回车、空格等键在打开键盘时都不可用。另外一个最囧的情况就是开了键盘后候选词上没有数字标号,但是是可以用数字键选词的。就凭这两点就可以把它给打入冷宫了。相信正式版会改进这两个问题的。

在输入方式上,我还是喜欢谷歌拼音的整句输入。所以一番试用之后我还是换回了谷歌拼音。其实我想要谷歌拼音的整句输入+搜狗拼音的9宫格键盘啊……

android Comments(0) 2009年11月27日 19:27

Gentoo X.org 下键盘无法响应

之前第一次装Gentoo,因为把~x86直接解禁,导致了最后许多软件包冲突,无法全局更新。这几天因为要写论文换回Ubuntu(Gentoo下LaTeX的CJK一时搞不定),顺便把原来的Gentoo给重装一遍(chroot真是个好东西)。

一步步装完,按照X.org安装指南装好X.org,装好gnome-light,重启进入Gentoo,发现键盘用不了,但是触摸板很神奇地能用。退出X,查看xorg.conf,键盘设置良好。

然后注意到了退出X后屏幕留下的启动信息,发现说找不到evdev。估计是X.org升级的影响。翻到X.org升级指南,发现果不其然。因为新版 X.org在驱动上使用了HAL,使用了evdev驱动来控制键盘(还有鼠标?)。

于是首先要确保内核开启了evdev支持(默认已开启):

Device Drivers --->

Input device support --->

--- Input device support
[*]     Event interface

编辑/etc/make.conf,在INPUT_DEVICES里加上evdev

最后更新xorg-server:

emerge -uav --newuse xorg-server

 

未分类 Comments(0) 2009年11月26日 07:39

android market 下载失败的解决方法

解决方法是从 http://bbs.weiphone.com/read.php?tid=515169 看来的

从本质上来说就是修改hosts文件添加market的IP。具体步骤是:

1、进入root模式

su

 应该是需要取得root权限的机子才行,我刷的第三方ROM已经有权限了

2、重新用读写的方式mount系统分区

mount -o remount,rw /dev/block/mtdblock3 /system

3、用vi编辑/etc/hosts

vi /etc/hosts

在hosts文件里添加这么一行 

74.125.93.113 android.clients.google.com

G1没有ESC键,可以用右Alt+1或者轨迹球+1代替

未分类 Comments(0) 2009年10月17日 07:28

多进程下载歌词尝试失败

OSD Lyrics的一个最大的问题就是它的单进程单线程模型,这使得它在搜索和下载歌词的时候会阻塞正常的歌词显示,导致在下载未完成时切换歌曲会出现无响应的情况。

由于基础太弱,这个问题一直被我搁着,直到把APUE的前17章都看了一遍,对Unix系统下多进程/线程有了大概的了解,终于开始着手改造下载模块了。为了不影响主分支的开发,我在之前就已经创建了一个branch用于尝试异步下载的实现。

本着KISS的原则,第一个想法非常简单:

  1. 在准备下载时,fork出一个进程,父进程直接返回,子进程继续执行下载任务
  2. 子进程下载后直接中止进程
  3. 父进程在收到SIGCHLD信号后检查当前正在播放的音乐的歌词是否已被下载

这个想法,如果不涉及GUI,是可以很好地工作的,但是一旦要显示一个GUI让人选择要下载的歌词,就直接崩溃了。看来X相关的东西不能直接fork来多弄出一份,不过这也是很自然的。

看来之前建了一个branch是明智的,这个要折腾的时间确实比较长。

于是接下来似乎只有两条路可以走了:

  1. 用glib来创建一个线程,再想办法在搜索和下载成功时向主线程的消息循环插入一条消息
  2. 研究curl相关的异步下载方法

又要开始看文档鸟>_<

程序设计 Comments(1) 2009年10月13日 04:09

OSD Lyrics 增加 Exaile 0.3 支持

其实在看到 lrcdis 增加对 Exaile 0.3 的支持的时候就知道 Exaile 0.3 的 dbus 接口改了,但是一直很懒,而且有不少事情要办,再加上没人来问,就放在一边不管了(其实就是这家伙懒嘛)。

但是终于还是有人问了,于是终于有动力去做了。Exaile 的文档做得不太好,没有 dbus 接口的文档,于是只能看源代码了。Exaile 的 dbus 接口代码在 xl/xldbus.py 里,因为是用 python 写的,所以很易读。

顺手把 xmms2 的支持给打开了。其实 xmms2 的支持早就好了,但是我没装,也就没测试,所以就把代码屏蔽掉了。现在还是没装,等用户反馈吧,嘿嘿。

最近一直没动 OSD Lyrics,一直想做的分离下载也没做,过几天再说吧,嗯。

PS:发现最近的blog全都是 OSD Lyrics 的更新,我果然是懒了啊……

未分类 Comments(0) 2009年10月11日 05:13

OSD Lyrics 添加 Songbird 支持

 Songbird本身似乎没有IPC支持,不过却有一个MPRIS扩展,因此理论上来说通过MPRIS来支持Songbird是很简单的,因为在实现Audacious和Amarok 2的支持的时候就已经把MPRIS支持模块提取出来了。事实上,Songbird的支持代码早就已经写好了(Audicaous的代码copy过来改个接口名就行,能不快吗),但是运行时却总是会出现段错误,因此一直没能实用。

因为之前同样是使用MPRIS协议的Audacious和Amarok2跑得很正常,以为是Songbird的MPRIS实现有问题导致的,昨天一查才发现我在获取歌曲信息时对音轨数据进行了不必要的内存释放。估计是Audacious和Amarok2都没有传递这个数据才幸免于难。

这样一来,OSD Lyrics又多了一个支持的播放器。想用Songbird的同学不要忘了安装MPRIS扩展。

osd-lyrics Comments(0) 2009年9月24日 20:15

OSD Lyrics on fedora & Arch Linux

好事成双,在OSD Lyrics有了自己的图标的同时,也有了RPM包。

说来惭愧,因为一直用着Ubuntu,所以只有条件给OSD Lyrics做deb包,其他的发行版只能通过编译源代码来安装。虽然说OSD Lyrics的依赖不多,但是源码安装毕竟是很多人不喜欢干的事。

OSD Lyrics 0.2发布后,Ray Chen同学提出了很多有益的建议,同时也提出找人为OSD Lyrics打个RPM包。今天liangsuilong提交了一个Issue,说RPM包已经打好了。打包的地址在http://liangsuilong.fedorapeople.org/osd-lyrics/,我把源码以外的四个包都上传到了网站上,方便下载。

另外某日在搜索的时候,发现原来已经有人给OSD Lyrics做了Arch Linux的Tarball了,而且还发现我手滑把版本号里的年份写成了2008,那时我才用Ubuntu不久,连GTK都不会呢-_-。

突然想我是不是应该加大宣传了。软件要做好是很重要,让有需要的人知道也是很重要的。ERS在《TAOUP》里说软件要常发布,不能总是想着万事俱备。同样地,我也不应该等着都完善了才让别人用吧,软件的完善是无止境的呀。

osd-lyrics Comments(2) 2009年9月23日 08:54

OSD Lyrics有了新图标啦

在OSD Lyrics刚推出的时候,系统托盘的图标是sarmolapple在实现时临时找的WMP图标,我就很不显眼地挂出了征集图标的启事。在推出0.2之后,觉得一个自由软件顶着WMP这专有软件的图标实在有伤风化,忍无可忍自己凑合了一个

现在,OSD Lyrics终于有了正式的图标了!图标的设计者是easy同学,他今天(应该说是昨天)早上把他自己设计的图标发给了我,图标如下:

Icon of OSD Lyrics

挺好看的吧?比我设计的强多了。而且还有它的含义:“图标的光碟和火焰组成了OSD三个字母,画笔代表歌词的自定义,组成了R的字母”。

感谢easy同学,虽然他因为使用的是KDE而无法用这个软件,但依然热心地为它设计了图标。

虽然只是个小项目,但是OSD Lyrics依然得到了大家的帮助,这就是开发自由软件最大的动力吧。

osd-lyrics Comments(2) 2009年9月22日 22:35

OSD Lyrics添加Exaile支持

由于有朋友要求,给OSD Lyrics添加了Exaile支持

在此不得不牢骚一下,Exaile设计的接口实在是太囧了,给出当前播放时间居然是用百分比来给出的,而且只精确到百分之一。这意味着在绝大多数歌曲中使用Exaile给出的时间换算后连1秒的精度都达不到,而OSD Lyrics需要的精度是0.1秒,不然卡拉OK效果会卡得厉害。

好在之前已经遇到了类似的问题,Amarok2和Rhythmbox给出时间的单位是秒(这里不得不说Amarok2,明明MPRIS协议规定精度是1毫秒的,结果这小子给出的毫秒时间后三位全是0-_-),于是用了系统时钟差来模拟毫秒数,但是多少是有些不准的,所以用这三个播放器可能有时会出现时间跳跃的现像,这已经是我能实现的极限了。

另外忍无可忍临时做了个图标。说实在的OSD Lyrics这么一个自由软件居然顶着专利软件WMP的图标,简直就是奇耻大辱。能力有限,图标肯定是不咋的,因此征集图标设计依然有效,有好的图标请发到我邮箱:tigersoldi[at]gmail.com

开学之后时间也少了,更新肯定不会太勤快,现在身上压着一大堆事情,完成设想中的功能不知道是要到猴年马月了。

另:salmorapple同学已经在着手开发0.3的一项重要功能了,嗯嗯

osd-lyrics Comments(5) 2009年9月14日 20:39