2005年9月26日から2005年9月22日までの日記を表示中
2005年 9月 26日 (月)
■何!?あ,頭が・・・
うがぁ,何か今日は午後からずっと頭が痛いっす・・・.疲れているときに出るあれか・・・.
[コメントを書く]
■uim.elのキーマップ
うーん,そのやり方は,かなり初期の段階で試したんですが,何かの理由があってあきらめた覚えがあります.・・・が,今改めて見直してみると,結構いけそうな気も.というわけで,やってみました.
(defconst uim-emacs-prefix-keys '(help-command Control-X-prefix mode-specific-command-prefix ctl-x-4-prefix ctl-x-5-prefix vc-prefix-map )) (defun uim-init-keymap () (setq uim-mode-map (make-sparse-keymap)) (setq uim-preedit-map (make-sparse-keymap)) (define-prefix-command 'uim-escape-map) (let ((prefixs uim-emacs-prefix-keys)) (while prefixs (let ((prefix-keys (where-is-internal (car prefixs)))) (while prefix-keys (define-key uim-mode-map (car prefix-keys) (car prefixs)) (setq prefix-keys (cdr prefix-keys)))) (setq prefixs (cdr prefixs)))) (if uim-emacs (define-key uim-mode-map [(escape)] 'ESC-prefix)) (cond (uim-xemacs (set-keymap-default-binding uim-escape-map 'uim-process-input) (set-keymap-default-binding uim-mode-map 'uim-process-input) (set-keymap-default-binding uim-preedit-map 'uim-process-input)) (uim-emacs (define-key uim-escape-map (vector t) 'uim-process-input) (define-key uim-mode-map (vector t) 'uim-process-input) (define-key uim-preedit-map (vector t) 'uim-process-input))) (define-key uim-mode-map [27] 'uim-escape-map))
うおお,超小さくなったっ!しかも,今までよりはるかにエレガント!もう過去には戻れません.が,これだとまだいくつか問題が残ってたりします.
- マウス操作とメニュー操作も拾ってしまうため,これらを例外として登録するか,uim-agentがスルーした後に処理するようにuim-key.elの方を直す必要がある(XEmacsはスルー後処理できるっぽい)
- XEmacsで,Esc-Esc-Escを実現する方法が不明(XEmacsはキーマップの中が見えないのが辛い・・・)
- X環境で動かしてるGNU Emacsだと,非プリエディット時に単発Escape押した場合に,エコー領域に「ESC」ではなく「escape」と出て気持ち悪い
とは言え,これで未知のキー入力に対しても対応できるわけで,やっぱこっちの方が全然いいっすね.ちなみに,「keyboard-quit」と「universal-argument」は,以前は非インタラクティブに呼ぶと何かうまく実行できなかったはずなんで例外扱いにしてたんですが,今はちゃんと動く模様.ここで直ったのかな?まあ,例外が減らせてよかったっす・・・.ちなみに,「set-keymap-default-binding」,さっき初めて知りました(;´Д`).
[コメントを書く]
[コメントを書く]
■花映塚
その後,うどんげ,魔理沙,咲夜と1回ずつやったんですが,全員8面か9面で終了orz.2順目始めようとしたらブルースクリーンでマシンが落ちました_|‾|○.とりあえず今のマシンだと,デフォルトだと天空のステージが重くてしかたないっす.画面を16bitにすると処理落ちしなくなりますが・・・.ケース小さいからあんま熱いカードいれられないんだよなー.なー.なー・・・.
[コメントを書く]
[コメントを書く]
2005年 9月 25日 (日)
■AjaxとUimとその他
そこそこIMっぽい動きはするようになったんですが(プリエディットまではちゃんと出る),なんかイベントハンドラの書き方がまずいのか,キーの取りこぼしが頻発します('A`).で,何か微妙に飽きちゃったのでしばらく休憩(^^;.
とりあえずAjax触ってみたいというだけで適当な題材としてUimとつないでみたわけですが,UimがWeb越しに使えることのメリットって何があるんでしょかね(以下考えをまとめるメモ).あ,IMがWeb越しに使えることへの需要はあるよ,という前提での話です.
- 単なる日本語の変換エンジンを提供したいだけなら,Uimをはさまずに,AnthyとかPrimeとかと直結した方が良さそう
- 単一のインタフェースで複数言語に一気に対応できるというメリットはある・・・が,m17n-libと直結した方がシンプルに作れて色々楽な気もする(こういうときUimは柔軟過ぎるのが仇か?よくわかってないけど)
- いいものができれば,Uimのデモにはなるかもしれない
うおお,メリット弱ぇ・・・.発想が貧困だ・・・.何か,こう・・・,その・・・,う〜ん・・・.「いいんじゃないか,好きならそれで」「そ,そだね!」
[コメントを書く]
[コメントを書く]
■東方花映塚とか
ついに遊んだー.霊夢でNormalやってみたら8面で終わりましたorz.気を取り直して妖夢でやってみたらやっぱり8面で死亡.屈辱だ ヽ(`Д´)ノ ウワァァァン・・・Σ(゜д゜lll) ハッ そういえば,シューティングは(も)下手な方だったんだっけ(´∀`).いかんいかん.
ていうか,そんなことより,うどんげステージのBGM,永夜抄とほとんど同じじゃないですか.これは,もしや・・・.と2度遊んだところでゲーム中断して波形を切り出してみると,おお,これはいけそうな感じ.というわけで,例によってtweで波形を編集.何やら再生タイミングもほとんど同じっぽい感じだったので,永夜抄でノイズが残ってたところと同じタイミングで切り出して貼り付けて見たところ・・・.音量以外は自然!超自然!(一応差し替え前と差し替え後の波形)
そんなわけで,花映塚のデータから0.3秒間決め打ちで切り出して,永夜抄のファイルに貼り付ける実行ファイル用意しました.ついでに永夜抄体験版から「夜雀の歌声」も同じように切り貼りする実行ファイルを用意.一年ぶりくらいにここ更新しましたよ.しかし未だ毎日10〜20くらいアクセスがあるってのがすごいっす.不思議だ・・・.
ちなみに,作業自体はLinuxでやってんですが,Windowsでコンパイルする場合って,MinGW使ってもfopenのmode引数に「b」とか付けないとまずいんすね.知らなかったよ・・・_|‾|○.最初,Windowsで動かしたら貼り付けたところがひどいノイズになってしまい焦りました(;´Д`).これまで配布してたパッチは,実は2箇所,そのせいで本来0x15015となるべきところが0x12012になってたりします(あれ逆かな?).まあ,それくらいじゃまず聴いてわかるような影響は無いかと思いますけど.いと恥ずかし.
[コメントを書く]
[コメントを書く]
■Celestia Event vol.1
初日分のファイルを聴いたんですが,すごい数ですねこれ.そしてどれも素晴らしい.リコーダーの素朴な音色にちょっと感動しました.
[コメントを書く]
[コメントを書く]
2005年 9月 24日 (土)
■textareaのキャレット位置
いやー,IEでtextareaのキャレット位置を取り出すのがこれほど大変だったとは・・・.いや,いまだになんでこれで取り出せてるのかよくわかんないんですけどね・・・.
,j;;;;;j,. ---一、 ` —--‐、_ l;;;;;;
{;;;;;;ゝ T辷iフ i f'辷jァ !i;;;;; 互換性さえ気にしなければ
ヾ;;;ハ ノ .::!lリ;;r゛ 小手先の技は必要ない・・・
`Z;i 〈.,_..,. ノ;;;;;;;;> そんなふうに考えていた時期が
,;ぇハ、 、_,.ー-、_',. ,f゛: Y;;f 俺にもありました
〜''戈ヽ `二´ r'´:::. `!
[コメントを書く]
[コメントを書く]
■Celestia Event vol.1
大臣さんが主催されているCelestia Projectというコミュニティサイトでステキな催しが開催されています.スクエニ(というよりスクウェア?)の音楽好きな人は必聴かと.
[コメントを書く]
[コメントを書く]
■uim.el
keymap を compact に。
ヽ(゜∀゜)ノ!?
keymap を compact に。できないかも。
(´・ω・)
keymap を compact に。できないかも。できんかった。
_|‾|○
いやー,まさかkeymapに手を出されるとは・・・.すごいっす.keymapは超汚いんで,どうにかした方がいいとは思うんですが,すこし触っただけでもすぐ動かなくなりそうで・・・.
[コメントを書く]
[コメントを書く]
2005年 9月 23日 (金)
■mmm-modeとかjavascript-modeとか
オライリーのJavaScript本は実はずいぶん古かったのね・・・.買わずに借りて済ませてもよかったかもな感じです.それはそうと,javascript-mode.elとか無いかと探してたら,mmm-modeなるものを見付けました.mmmとは,Tcl/Tkで書かれたWebブラウザで,「もー」と読みま・・・ご,ごめんベタすぎた_|‾|○.
えーと,mmm-modeは,単一のバッファ内で複数のメジャーモードが共存できるようにしてくれるEmacsのマイナーモードです.バッファ内の領域を指定して,ここからここまではphp-mode,ここからここまではcss-mode,みたいな感じです.範囲は手でも指定できるし,パターンマッチングでも指定できます.これを使うと,HTML内に記述してあるCSS,PHP,JavaScriptが大変よい感じに扱えるようになる,と.Meadow/Emacs memoに設定サンプルがあったりします.
で,javascript-modeなんですが,探したら実はGNU Emacsに同梱されている模様.ただし,「(require 'generic-x)」とかやらないと使えないみたいな.define-generic-modeでお手軽設定みたいなことやってる雰囲気です.早速適用してみたところ,「/* */」スタイルのコメントがコメントとして認識されないみたいです.ありなのか,それ・・・.というわけでコメント定義を追加してみることに.こんな感じ?構文フラグとかいって覚えられませーん.
(require 'generic-x) (add-hook 'javascript-generic-mode-hook (lambda () (modify-syntax-entry ?/ ". 124b") (modify-syntax-entry ?* ". 23") (modify-syntax-entry ?\n "> b"))) (add-to-list 'generic-extras-enable-list 'javascript-generic-mode)
あれ,インデントが変ですねー.というかc-set-styleがうまく効かないのはなんでかなー・・・.うーん(;´Д`)・・・あれ,XEmacsにjavascript-mode.elついてるじゃんΣ(゜д゜lll).しかもGNU Emacsで動くし・・・.最初からこれ使うんだった_|‾|○.というわけで javascript-generic-mode やめて javascript-mode に移行しましたorz.無駄な時間を・・・.
[コメントを書く]
[コメントを書く]
■uim+Ajaxの続き
んで,JavaScriptを少し学んだ上で,先日超中途半端に終わったuim + Ajaxに再挑戦してみました.前回,chrootしたサーバ越しにuimが起動しないという状況だったんですが,デバッグメッセージを標準出力につないで出してみたところ,何か「(getenv "HOME")」が取れないことが判明.そこで内部でsetenvしてやったら動くようになりました.URIにキー列突っ込んで送ると,最後のキーが押された後のIMの状態が返ってくるようになりましたよ.ちなみに,これでAnthyも動くようになりました.全てはHOMEか・・・.
で,次にブラウザ側でキー拾うところなんですが,「JavaScript & DHTMLクックブック」のお蔭でこっちは割と楽にできそうな感じです.ただ,IEでC-fとかf1を拾わせない方法がよくわからんです.C-nとかはブロックできたんですが・・・.まあ,ひとまず後回しです.
サーバにリクエスト送ったりする部分は,Mozillaのサイトにあったサンプルコードそのまま貼っ付けておしまいです.ここは特にやることなさそうだし.
というわけで,次は XMLから必要なデータ取り出すところなわけですが・・・早くもはまり気味・・・.
[コメントを書く]
[コメントを書く]
2005年 9月 22日 (木)
■b-mobile
なんか最近,使ってると突然「cs: pcmcia_socket0: unable to apply power.」とか言って接続が切れたりする現象がががっΣ(゜д゜lll)! 圏内でも緑色のLEDが消えるんで,実際通電してない状態になってるっぽいんですが,なんなんじゃろう.さしっぱなしで鞄に突っ込んだりしてるのが悪い・・・んだろうなぁ(;´Д`).
[コメントを書く]
[コメントを書く]
■CDとか
ゆづき亭さんの「Enchanted Waves」を聴きましたよ.・・・ん?「©NAMCO」?何が入ってんだ・・・ってkiyoma氏はボスコニアンと混ぜてるのか(^^;.ていうかほとんどボスコニアンじゃん(笑).
で,リッピングしたのを聴いたりもしてるわけですが,とりあえず,東方ミッドナイトが妖々夢(ほぼ)フルアレンジアルバムだということに今日初めて気づきました(^^;.
[コメントを書く]
[コメントを書く]
■gaim-xmms
Gaim-XMMSというプラグインを見付けたのでちょっと試してみました.これ,Gaimからxmmsを操作する・・・なんていうどういう意味があるのかよくわからないプラグインではなくて,xmmsで再生している曲のタイトルとかをGaimのユーザアカウントのプロフィールに反映してくれるプラグインです.
これって,つまり本家MSNメッセンジャーとWMPかなんかでやってるあれと同じようなことができるのか!?と期待して入れてみたんですが,MSNでは機能してくれない模様(´・ω・`).ソース見るとMSN関連の記述はあるんですが,コメントアウトされてました.アンコメントして有効にしてみたんですが,やっぱりだめぽ.この辺で議論してますね.外から叩けるAPIが無いのかな・・・.
[コメントを書く]
[コメントを書く]
■anthy.scm
昨日の続きというか,地味にanthy.scmとか見たりしてるんですが,最初define-recordの意味が全然わからずしばらく引っかかりましたorz.で,局所的に見た結果「その直後のキー入力が1個分読み飛ばされちゃう」というのは実は間違いで,正しくは「その直後のキー入力を処理した際に,プリエディットが更新されない」ということが判明.
何か,コントロールキャラクタがuim_release_keyの方に与えられると,anthy-release-key-handler内でanthy-commit-rawが呼ばれ,その結果 anthy-context-commit-raw が #tになって,次の別のキー入力によって anthy-press-key-handler が呼ばれたときにキー処理後に呼ばれるanthy-update-preeditの中でcontext-update-preedit が飛ばされてしまうため,こうなるっぽいです.・・・というのは,ソースを追えば誰でもわかる話で,なんでこうなってんのかとか,「anthy-context-commit-raw」が何を表してんのかとかマジさっぱりです(;´Д`).昨日あてずっぽうで書いた対処は,pressの方でcontext-update-preedit が飛ばされた後,もう1回releaseの方で anthy-update-preedit を呼ぶことでフォローしてるに過ぎないので,たまたまうまく当たったって感じですね.
うーん,プリエディットが存在している間はコントロールキャラクタ(1〜31と127)は捨てていいんじゃないかと思うんですが,素通ししてうれしいブリッジってあんのかなぁ.
[コメントを書く]
[コメントを書く]
2005年9月26日から2005年9月22日までの日記を表示中
[コメントを書く]