<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kanru&#039;s 探險日誌 &#187; IME</title>
	<atom:link href="http://blog.kanru.info/archives/tag/ime/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.kanru.info</link>
	<description>當發現美好的事物時，所要做的第一件事，就是把它分享給所有人</description>
	<lastBuildDate>Sun, 23 May 2010 09:51:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>ROTE &#8211; Our Own Terminal Emulation Library</title>
		<link>http://blog.kanru.info/archives/55</link>
		<comments>http://blog.kanru.info/archives/55#comments</comments>
		<pubDate>Thu, 12 Jan 2006 18:06:20 +0000</pubDate>
		<dc:creator>kanru</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[IME]]></category>

		<guid isPermaLink="false">http://kanru.info/~kanru/blog/archives/55</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><a href="http://rote.sourceforge.net/">librote</a>, 是一個 console 底下的 terminal emulator ，這有什麼用呢？為什麼在 console 下還需要 terminal emulator？</p>

<p>因為它可以內嵌在在許多不同的程式裡面，尤其是 ncurses 的程式，可以把 rote 的 output 直接寫到一個 WINDOW 裡面，對於要內嵌 terminal 功能的程式來說非常方便，甚至還有人利用這個 library 寫出網頁用的 terminal emulator &#8212; <a href="http://anyterm.org/">anyterm</a>。</p>

<p>我是在找有什麼東西可以幫助我完成 console-chewing 的 library 時發現這個的，真的非常方便，剛剛花了些時間便完成最基礎的中文輸入功能。（以 off-the-screen 的方式）</p>

<p>不過對於多位元的編碼似乎無法處理，一些 utf8 的字會被切割，看來還是要花時間 hack 了。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kanru.info/archives/55/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TODO</title>
		<link>http://blog.kanru.info/archives/44</link>
		<comments>http://blog.kanru.info/archives/44#comments</comments>
		<pubDate>Sat, 24 Dec 2005 08:02:52 +0000</pubDate>
		<dc:creator>kanru</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[IME]]></category>

		<guid isPermaLink="false">http://kanru.info/~kanru/blog/?p=44</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>最近什麼事都沒做，還要講什麼什麼的，真是很不好意思 :-/</p>

<p>有一些事情希望能在寒假做完&#8230;</p>

<ul>
<li>把 OV-Win32 的建構方法弄完整一點</li>
<li>看能不能吸收一些 ChewingIME 的功力</li>
<li>微調微調&#8230;</li>
</ul>

<p>說來說去，就是要繼續改 OV 啦 <img src='http://blog.kanru.info/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>

<p>阿，不過應該要開始忙專題的事了。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kanru.info/archives/44/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用 meld 來做 merge</title>
		<link>http://blog.kanru.info/archives/41</link>
		<comments>http://blog.kanru.info/archives/41#comments</comments>
		<pubDate>Sun, 04 Dec 2005 07:05:56 +0000</pubDate>
		<dc:creator>kanru</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[小工具]]></category>
		<category><![CDATA[爬網探險]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[IME]]></category>

		<guid isPermaLink="false">http://kanru.info/~kanru/blog/archives/41</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>今天在把 libchewing 的 utf8 branch merge 到 trunk 去，發現 meld 用起來真的很方便。</p>

<p>首先因為我是用 svk 來管理的，所以先 export SVKMERGE=meld，這樣 svk 在需要 merge 的時候就會自動呼叫 meld。</p>

<p>然後 svk smerge //mirror/chewing/libchewing/branches/utf8 就會開始自動 merge，碰到 orig 跟 trunk 還有 branch 都不一樣的時候就會呼叫 meld 出來做 3 way merge，我只需要用滑鼠點選要使用哪一個 branch 的更動就可以了，不用辛苦的比對。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kanru.info/archives/41/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SCIM Debug</title>
		<link>http://blog.kanru.info/archives/34</link>
		<comments>http://blog.kanru.info/archives/34#comments</comments>
		<pubDate>Sat, 12 Nov 2005 12:09:30 +0000</pubDate>
		<dc:creator>kanru</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[IME]]></category>

		<guid isPermaLink="false">http://kanru.info/~kanru/blog/?p=34</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>最近要測試 libchewing 的 utf8 branch ，最好的方法就是平常就用。
一開使用起來都沒什麼大問題，可是跟 scim-chewing 搭配起來有時後過一段時間沒打字，下次要輸入的時候就會在組字的時候 crash 掉，用 <acronym title="chewing test unit">genkeystroke</acronym> 就不會有這種問題。</p>

<p>scim-chewing 最近實在太容易掛了，還好我終於學會怎麼看 scim 的 log o_O。方法就是</p>

<ol>
<li>configure 加參數 &#8211;enable-debug</li>
<li>啟動 scim 時加參數 &#8212; &#8211;verbose [0-7]</li>
</ol>

<p>這樣 scim 就會把 &#8211;verbose [0-7] pass 給 scim-launcher，進而啟動 verbose 模式。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kanru.info/archives/34/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Screen-chewing</title>
		<link>http://blog.kanru.info/archives/30</link>
		<comments>http://blog.kanru.info/archives/30#comments</comments>
		<pubDate>Tue, 08 Nov 2005 17:17:26 +0000</pubDate>
		<dc:creator>kanru</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[IME]]></category>

		<guid isPermaLink="false">http://kanru.info/~kanru/blog/?p=30</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>之前 <a href="http://jserv.sayya.org">jserv</a> 與 BBNS 參考 screen-uim 黑出了 <a href="http://chewing.csie.net/screenshots.html" title="請參考 screenshot">screen-chewing</a> 這樣的東西，是 gnu screen 的外掛程式，據 jserv 的形容，是醜陋恐怖的 rc file 的結果。所以到現在還沒有真正的 code 出現。</p>

<p>這幾天在弄類似的東西，是受到 screen-chewing 和 Mat 的 <a href="http://iiimtcf.csie.net">iiimtcf</a> 的啟發，既然輸入法只是一個 filter ，而現在 console 與 xterm 都有能力顯示中文只是無法輸入，那麼何不在 terminal 與 shell 間加一層，如此一來就可以輸入中文了，而原來的 terminal 則不用任何修改。</p>

<p>目前簡陋的可以切換中英輸入，可以在命令列打初中文字。等那天頭腦清醒且這個程式對我有用的話，可能會繼續完成。嗯，我是重度 command line 使用者.. 所以還滿有可能的。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kanru.info/archives/30/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>libchewing &amp; SQLite3</title>
		<link>http://blog.kanru.info/archives/26</link>
		<comments>http://blog.kanru.info/archives/26#comments</comments>
		<pubDate>Mon, 17 Oct 2005 12:55:27 +0000</pubDate>
		<dc:creator>kanru</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[IME]]></category>

		<guid isPermaLink="false">http://kanru.info/~kanru/blog/archives/26</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>今天上課上到一半手癢，很想改程式&#8230; orz</p>

<p>下課一有時間就跑去看以前寫的 SQLite3 相關的 code ，之前都是抄網路上的範例，有看沒有懂，今天突然都明白了&#8230; 目前最基本 hash.dat 可以 Insert 、 Update ，Search 的部份因為牽連到其他部份比較多.. 要慢慢的來改。</p>

<p>剩下的就是要耐心的工作了，小心的把原本 function 的功能做出來，再來改整個 interface 做 refactor&#8230; 也許期中考過後可以生出什麼？ 還是很期待 gugod 先把其他 code 生出來 XD</p>

<p>好了，該去看書.. &amp;</p>

<p>Update:</p>

<ul>
<li>&lt; gugod> 我在 sqlite branch 已經把 hash.c 跟 userphrase.c 幹掉了&#8230; XD</li>
<li>&lt; gugod> 還不錯用 :p</li>
</ul>

<p>幹得好阿&#8230; 我今天完全白作工了 XD</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kanru.info/archives/26/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PCMan 的 ChewingIME</title>
		<link>http://blog.kanru.info/archives/19</link>
		<comments>http://blog.kanru.info/archives/19#comments</comments>
		<pubDate>Wed, 28 Sep 2005 01:08:29 +0000</pubDate>
		<dc:creator>kanru</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[IME]]></category>

		<guid isPermaLink="false">http://kanru.info/~kanru/blog/archives/19</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>鑑於並不是每個人都需要「多重輸入法」的輸入環境，PCMan 參考 OV IME 的 IME 部分利用 chewing 的 API 寫出獨立的 Win32 酷音版本。<a href="http://freesf.tnc.edu.tw/modules/news/article.php?storyid=2170">FreeSF 的報導</a></p>

<p>我想這就跟 OSX 上 SpaceChewing 與 OpenVanilla  的關係一樣，希望兩個專案可以互相合作 ：）
(hate IME API)</p>

<p>不過看到這個新聞，讓我想到兩件事，一是該把 IME 的 ANSI Build 弄出來並在 Win98/ME 了，二是我真的不會廣告，相較之下 PCMan 就厲害多了 <em>grins</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kanru.info/archives/19/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>IME 進度(r1490)</title>
		<link>http://blog.kanru.info/archives/13</link>
		<comments>http://blog.kanru.info/archives/13#comments</comments>
		<pubDate>Sat, 24 Sep 2005 15:10:13 +0000</pubDate>
		<dc:creator>kanru</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[IME]]></category>

		<guid isPermaLink="false">http://kanru.info/~kanru/blog/archives/13</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>浪費了幾天的時間，決定暫時把那一時之間做不完的事給放一邊，來寫寫程式放鬆一下。</p>

<p>到這個版本為止，主要有兩個重大的改變，一是修正了在 gaim、mozilla 等自己管理 CompWindow 的程式中， CandidateWindow 位置會亂跑的問題，但是 NotifyWindow 還是會跑到不知名的地方&#8230; 還要想一下有沒有比較好的解法。</p>

<p>另外一個真正是重大改變與實驗，把 loader 獨立為一個執行檔，與 IME 用 socket 溝通，結果大大提昇載入的速度，改完設定之後也可以馬上 apply，這樣要修改輸入法順序或是啟用、調動 OutputFilter 就方便多了，現在除了每個程式還無法用各自的 InputMethodContext 之外，其餘行為都跟原本的一樣甚至更好：）</p>

<p>update:</p>

<p>TODO:</p>

<ul>
<li>IO Blocking 的問題。</li>
<li>Context 號碼牌。</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.kanru.info/archives/13/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IME 進度(r1482)</title>
		<link>http://blog.kanru.info/archives/9</link>
		<comments>http://blog.kanru.info/archives/9#comments</comments>
		<pubDate>Mon, 12 Sep 2005 19:15:35 +0000</pubDate>
		<dc:creator>kanru</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[IME]]></category>

		<guid isPermaLink="false">http://kanru.info/~kanru/blog/?p=9</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>總算把 wxWidgets 和 OVPreferences 的編譯環境給建立起來，這樣我也可以來編譯修改 OVPreferences 了。</p>

<p>又多 Porting 了七個 OVOutputFilter 的模組，非常好玩、有趣、有用。
今天有新的 <a href="http://openvanilla.org/plugin/attachments/Win32Issues/OpenVanilla-Win32-0.7.1rc0+r1482.exe">NightlyBuild</a> 可以抓下來用 <img src='http://blog.kanru.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>config.xml 以及 UserDir 的位置有變動，改到 Documents and Settings\%User%\Application Data\OpenVanilla 去，想保留之前設定的人可以把 config.xml 和 User 底下的東西搬到這裡。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kanru.info/archives/9/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IME 进度(r1479)</title>
		<link>http://blog.kanru.info/archives/8</link>
		<comments>http://blog.kanru.info/archives/8#comments</comments>
		<pubDate>Mon, 12 Sep 2005 04:57:34 +0000</pubDate>
		<dc:creator>kanru</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[IME]]></category>

		<guid isPermaLink="false">http://kanru.info/~kanru/blog/archives/8</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>开学第一天，把 OVOutputFilter 的基本支援弄好了，连带的把之前没有实做的 Service->notify() 与 Service->UTF8ToUTF16 也弄出来，因为这些是 OVOutputFilter 常常用到的功能。
所以到目前为止，几乎所有的 Loader 基本功能都有实做了：）
目前有几个缺点与需要思考的是，一、无法动态改变载入的模组的顺序与启用与否，这限制了动态改变 Filter 的便利行；二、若是把 Loader 实做出 standalone server 的话，这样重新载入所有模组的耗费就会比较小，这样「一」也比较容易达成。
需要思考的是，OVService 大量的被使用与参考，是否需要实做为 singleton class 呢？我想应该是要的。</p>

<p>这篇打出来是简体字，这是使用 OVOFHanConvert 做到的，整篇文章还是用酷音打出来的 ：）</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kanru.info/archives/8/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
