RIME 0.9.3 开发计划

228 views
Skip to first unread message

弓辰

unread,
Aug 16, 2012, 12:26:07 AM8/16/12
to rime-...@googlegroups.com, 弓辰
Hello 大家好

这段时间打工比较累,无奈RIME的开发也就没啥大的进展。
我在自己的笔记上
计划下个版本要完成的功能,在 rime-0.9.3 这一节列出来了。先通报给大家。
以下事项大多在 Google Code 上有记录,预估工作量集中在粗体字的那几项上。用两周时间完成,是不是太乐观?不过确实太久无更新了。
重头戏是所有用户都用得上的「用户词典同步」,以及呼声高的「码表输入法字频调整」两个新功能。
看看有啥要调整的。
邹君,还有各位,要是想承包一项,或掺和掺和的快告诉我。

* Rime

** Documentation
*** [[http://code.google.com/p/rimeime/w/list][Rime Wiki]]
**** DONE Combo Pinyin Manual
     CLOSED: [2012-08-13 星期一 15:58]
** Tasks
*** Minimal editor
    Do not show candidate list until user presses space bar.
*** [Windows] Quit WeaselServer when service is idle
    Though I don't think it's nessesary.
*** [Windows] Windows 8 support
**** [Windows] LanguageBar
*** Dynamic Table
**** UniTE: Unity Table Encoder
     Define rules to encode phrases, given individual words.
**** Import phrases from preset vocabulary
     Encode them with UniTE, and then build them into static table.
**** Guess new phrases from commit history
     Record them into userdict as unvisited terms;
     until they are selected and committed by user.
     May have the need to clean up stale guesses when a limited number is reached.
*** Maintenance completed callback
    To notify the frontend about Rime's status change.
*** Cross-platform setting interface
    Under discussion.

    The traditional way: use cross-platform UI library like Qt.
    The UI should have the ability to be dynamically arranged according to configurations in the schema.
   
    Web UI: build an interface with HTML/CSS/JavaScript.
    It's not decided whether to embed a webserver or to embed a browser widget.
    Mongoose is a good candidate for embedded webserver.
    WebKit is available on Mac and Linux, while Windows provides IE Control.
    We'll have to write bindings for each.
   
**** Plugin system
     Setting interface can be implemented as an individual app that simply edits some YAML;
     it can also be implemented as a plugin.
     ABI compliance can be a challenge in implementing the plugin system.

     Plugins are also useful for debugging purposes, or to install extensions to librime.
     Need detailed discussion.

** rime-0.9.3
*** DONE Licensing: edit brise/AUTHORS
    CLOSED: [2012-08-16 星期四 09:56]
*** DONE [Windows] rime.dll
    CLOSED: [2012-07-21 星期六 10:50]
*** DONE [Windows] WeaselSetup utility
    CLOSED: [2012-07-21 星期六 14:06]
    Register/unregister weasel.ime for portable installation
    Select input language: zh_CN / zh_TW
    Allow overriding default UserDirectory location
*** DONE Logging system: EzLogger (license unclear) replaced by google-glog
    CLOSED: [2012-07-25 星期三 11:35]
**** TODO Improve log file cleaner's strategy
*** TODO [Feature] User dict for table_translator
*** TODO [Feature] User dict sync
*** TODO [Feature] Retrieve schema list, select schema, access context options by API call
*** TODO [Feature] App-aware session
    eg. reset ascii_mode = 1 in terminal.
*** TODO [Linux] Improve packaging scheme
    'brise' may become a separate package.
    build option for custom target data directory.
*** TODO [Mac] Squirrel alternative UI: show preedit text in candidate panel
*** TODO [Mac] Single session per app
*** TODO [Mac] Large icon for Retina display
*** TODO [Windows] Allow hiding Weasel tray icon
*** TODO [Windows] Horizontal candidate layout

Wish

unread,
Aug 16, 2012, 2:35:05 AM8/16/12
to rime-...@googlegroups.com
Windows前端的部分交给我吧:)
下个版本之前把TSF搞定
> --
>
>
>

Z C

unread,
Aug 19, 2012, 9:45:44 AM8/19/12
to rime-...@googlegroups.com
rime的一个问题是依赖的库太多:boost、yaml-cpp、kyoto-cabinet

这些库大多数的发行版都没有预装,而且体积也很大,光boot库就好几百M。

一个输入法却依赖一个几百兆的额外库?这种事情太蛋疼了。

而且kyoto-cabinet也非常异类,就不能用一个常见一些的数据库吗?

yaml-cpp部分也有问题,64位下编译会出错。

rime依赖这么多“非主流”的库,体积庞大而且有些库(yaml-cpp、kyto-cabinet)大多数发行版的repo里根本就没有。



--




Ma Xiaojun

unread,
Aug 19, 2012, 10:28:21 AM8/19/12
to rime-...@googlegroups.com
要說依賴的問題……其實IBus……甚至Fcitx……如果在舊一些的發行版版本上編譯……都會讓人吐血的……

Wish

unread,
Aug 19, 2012, 10:30:03 AM8/19/12
to rime-...@googlegroups.com
抱怨体积大,如果你用过小狼毫或者鼠须管就知道,也就那么一二十M。Linux下为什么这么大我想原因你应该清楚,如果不喜欢,Linux至少有一大半责任,别用好了。
另一方面,对一个Linux用户来说,安装软件包、编译软件应该是基本技能,如果不会且不愿意学,大可以用Windows或者mac,没人逼你。发行版里有包没有,你可以提交或者请求别人提交,如果这些问题都不能解决,我对这个发行版的可用性表示怀疑。
说这些库非主流,我只想说,看看Linux桌面的市场占用率吧,一个人没事干嘛用非主流系统?

以上都是废话,兄台如果有心,帮大家找找可以替代这些非主流库的“主流”库,帮大家做做移植,比在这里说要有意义得多。

> --
>
>
>

Ma Xiaojun

unread,
Aug 19, 2012, 10:31:30 AM8/19/12
to rime-...@googlegroups.com
也不用吵架,說非主流的最好提一下替代方案,說沒問題不妨提一下這些選擇有什麼好處在……

佛振

unread,
Aug 19, 2012, 10:59:02 AM8/19/12
to rime-...@googlegroups.com
Rime不是作为一款Unix平台的软件而设计的,因此选用第三方程序库时一方面看功能的需要,一方面考虑程序库本身能否跨平台,尤其是在Windows上开发是否方便。因此,不会特意挑选那些传统的Unix程序库。

比如数据库的选择,SQLite 性能不如意,尤其是初次加载时的延迟对输入法应用十分不利;Berkerly DB 体积庞大,在Windows上使用比较复杂;性能等各方面都比较合适的只有 kyotocabinet 和 level-db,前者功能更全面,能节省大量开发时间 - - 现在时间比较缺呀,写得快别的哪管恁多。

再者,Rime是用C++写的而不是C,Boost在C++领域的地位绝对是最主流的通用程序库,使得Rime能为内存管理、访问文件系统、多线程、Regex等诸多任务写出高效、平台无关的代码。我只说,C++不是Unix原生的语言。

如果纯粹为输入法使用者考虑,静态链接可以把这些依赖项在编译阶段消除。不过谁让 Linux guys 如此反感静态链接呢。
现在还能怎么办?

我的一贯看法,那些开源作者把一个问题解决得恁专业,怪不容易的,所以有合适的程序库就要用起来,如此能把时间用在创造新的价值上。打包时候累一些,总没有写代码麻烦吧 :-)

zcnnbb於 2012年8月19日星期日UTC+8下午9時45分44秒寫道:

佛振

unread,
Aug 19, 2012, 11:07:19 AM8/19/12
to rime-...@googlegroups.com
对,可以讨论下解决办法。

DB 方面,其实有段时间很想找KC的其他替代品,最后只找到Level-DB,不过发现后者也没有被一些Linux发行版收录,看样子还需要再等等看,更成熟了真正成为「主流」DB再用为好。

Boost大部分库是header-only的;而那几个需要编译的库,.so 的体积加起来都比静态链接的 rime 主程序大很多。这实在是浪费呀浪费。

Ma Xiaojun於 2012年8月19日星期日UTC+8下午10時31分30秒寫道:
也不用吵架,說非主流的最好提一下替代方案,說沒問題不妨提一下這些選擇有什麼好處在……

Wish

unread,
Aug 19, 2012, 11:12:17 AM8/19/12
to rime-...@googlegroups.com
boost部分,多线程、lambda、regex倒可以试着用c++11看看。听说tr1不少东西都是直接从boost里搞过去的?
只剩一个filesystem的话一切都简单了。

DB的话,似乎我们没有用到很多“高级”功能,后悔这学期没选数据库的课……有时间的话我倒有兴趣写个小实验品试试。

说吵架的,跟众多Linuxer相比,我刚刚的态度不算差吧 ;)

2012/8/19 佛振 <chen...@gmail.com>:

> --
>
>
>

佛振

unread,
Aug 19, 2012, 11:39:26 AM8/19/12
to rime-...@googlegroups.com
好的。。曾有C++11发布后的某一天,我很兴奋地把 rime::shared_ptr 由 boost::shared_ptr 改为 std::unique_ptr;结果第二天发现Mac上的Xcode(gcc)没有实现C++11啊……今天忙活着升级系统,然后就可以用上新版Xcode,还盼着 auto 和 lambda……,不过有个担心。万一哪天想移植到手机,别C++11代码用不了了!

wishstudio於 2012年8月19日星期日UTC+8下午11時12分17秒寫道:

Wish

unread,
Aug 19, 2012, 11:47:08 AM8/19/12
to rime-...@googlegroups.com
我手机上装着gcc-4.6呢= =,gcc的跨平台性你要相信他
c++11多线程什么的好像还是没有完成吧,不过现在至少可以一步一步转移过去

2012/8/19 佛振 <chen...@gmail.com>:

> --
>
>
>

Moritz Qin

unread,
Sep 25, 2012, 11:51:08 PM9/25/12
to rime-...@googlegroups.com, 弓辰
hello. 

windows的TSF版本什么时候可以出来?我可以抽时间帮大家测试。

2012/8/16 弓辰 <chen...@gmail.com>


--
 
 
 

Jago Wang

unread,
Feb 7, 2014, 1:29:58 AM2/7/14
to rime-...@googlegroups.com, 弓辰
辛苦了,Rime以前的图标是白色的挺好看啊,为毛换成黑色了啊,今天更新了才发现;
问下参与Rime开发需要用到哪些编程语言和技术,想学习学习,看能不能帮上忙,呵呵!!

yy...@hotmail.com

unread,
Feb 13, 2014, 9:25:28 PM2/13/14
to rime-...@googlegroups.com, 弓辰
试用了小狼毫,感觉光标跟踪不太理想,尤其是在浏览器里,有没有人关注这个问题,没有的话我想试着研究以下哈

弓辰

unread,
Feb 13, 2014, 9:34:07 PM2/13/14
to rime-...@googlegroups.com
那再好不過了。


<yy...@hotmail.com> 於 2014年2月14日 上午10:25 寫道:
试用了小狼毫,感觉光标跟踪不太理想,尤其是在浏览器里,有没有人关注这个问题,没有的话我想试着研究以下哈

--
 
---
您已訂閱「Google 網上論壇」的「rime-devel」群組,因此我們特別傳送這封郵件通知您。
如要取消訂閱這個群組並停止接收來自這個群組的郵件,請傳送電子郵件到 rime-devel+...@googlegroups.com
如需更多選項,請前往:https://groups.google.com/groups/opt_out。

Reply all
Reply to author
Forward
0 new messages